<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive BOM for KiCAD</title>
  <style type="text/css">
:root {
  --pcb-edge-color: black;
  --pad-color: #878787;
  --pad-color-highlight: #D04040;
  --pin1-outline-color: #ffb629;
  --pin1-outline-color-highlight: #b4ff03;
}

html, body {
  margin: 0px;
  height: 100%;
  font-family: Verdana, sans-serif;
}

.dark {
  --pcb-edge-color: #eee;
  --pad-color: #808080;
  --pin1-outline-color: #ffa800;
  --pin1-outline-color-highlight: #ccff00;
  background-color: #252c30;
  color: #eee;
}

button {
  background-color: #eee;
  border: 1px solid #888;
  color: black;
  height: 44px;
  width: 44px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  font-weight: bolder;
}

.dark button {
  /* This will be inverted */
  background-color: #c3b7b5;
}

button.depressed {
  background-color: #0a0;
  color: white;
}

.dark button.depressed {
  /* This will be inverted */
  background-color: #b3b;
}

button:focus {
  outline: 0;
}

button#tb-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

button#lr-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

button#bom-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

button#copy {
  background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
  background-position: 6px 6px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  border-radius: 6px;
  height: 40px;
  width: 40px;
  margin: 10px 5px;
}

button#copy:active {
    box-shadow: inset 0px 0px 5px #6c6c6c;
}

textarea.clipboard-temp {
  position: fixed;
  top: 0;
  left: 0;
  width: 2em;
  height: 2em;
  padding: 0;
  border: None;
  outline: None;
  box-shadow: None;
  background: transparent;
}

.left-most-button {
  border-right: 0;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.middle-button {
  border-right: 0;
}

.right-most-button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.button-container {
  font-size: 0;
}

.dark .button-container {
  filter: invert(1);
}

@media print {
  .hideonprint {
    display: none;
  }
}

canvas {
  cursor: crosshair;
}

canvas:active {
  cursor: grabbing;
}

.fileinfo {
  width: 100%;
  max-width: 1000px;
  border: none;
  padding: 5px;
}

.fileinfo .title {
  font-size: 20pt;
  font-weight: bold;
}

.fileinfo td {
  overflow: hidden;
  white-space: nowrap;
  max-width: 1px;
  width: 50%;
  text-overflow: ellipsis;
}

.bom {
  border-collapse: collapse;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 10pt;
  table-layout: fixed;
  width: 100%;
  margin-top: 1px;
}

.bom th, .bom td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

.dark .bom th, .dark .bom td {
  border: 1px solid #777;
}

.bom th {
  background-color: #CCCCCC;
  background-clip: padding-box;
}

.dark .bom th {
  background-color: #3b4749;
}

.bom tr.highlighted:nth-child(n) {
  background-color: #cfc;
}

.dark .bom tr.highlighted:nth-child(n) {
  background-color: #226022;
}

.bom tr:nth-child(even) {
  background-color: #f2f2f2;
}

.dark .bom tr:nth-child(even) {
  background-color: #313b40;
}

.bom tr {
  transition: background-color 0.2s;
}

.bom .numCol {
  width: 25px;
}

.bom .Description {
  width: 10%;
}

.bom .Part {
  width: 10%;
}

.bom .Value {
  width: 15%;
}

.bom .Quantity {
  width: 65px;
}

.bom th .sortmark {
  position: absolute;
  right: 1px;
  top: 1px;
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #221 transparent;
  transform-origin: 50% 85%;
  transition: opacity 0.2s, transform 0.4s;
}

.dark .bom th .sortmark {
  filter: invert(1);
}

.bom th .sortmark.none {
  opacity: 0;
}

.bom th .sortmark.desc {
  transform: rotate(180deg);
}

.bom th:hover .sortmark.none {
  opacity: 0.5;
}

.bom .bom-checkbox {
  width: 30px;
  position: relative;
  user-select: none;
  -moz-user-select: none;
}

.bom .bom-checkbox:before {
  content: "";
  position: absolute;
  border-width: 15px;
  border-style: solid;
  border-color: #51829f transparent transparent transparent;
  visibility: hidden;
  top: -15px;
}

.bom .bom-checkbox:after {
  content: "Double click to set/unset all";
  position: absolute;
  color: white;
  top: -35px;
  left: -26px;
  background: #51829f;
  padding: 5px 15px;
  border-radius: 8px;
  white-space: nowrap;
  visibility: hidden;
}

.bom .bom-checkbox:hover:before, .bom .bom-checkbox:hover:after {
  visibility: visible;
  transition: visibility 0.2s linear 1s;
}

.split {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: inherit;
}

.split.split-horizontal, .gutter.gutter-horizontal {
  height: 100%;
  float: left;
}

.gutter {
  background-color: #ddd;
  background-repeat: no-repeat;
  background-position: 50%;
  transition: background-color 0.3s;
}

.dark .gutter {
  background-color: #777;
}

.gutter.gutter-horizontal {
  background-image: url('');
  cursor: ew-resize;
  width: 5px;
}

.gutter.gutter-vertical {
  background-image: url('');
  cursor: ns-resize;
  height: 5px;
}

.searchbox {
  float: left;
  height: 40px;
  margin: 10px 5px;
  padding: 12px 32px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 18px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 6px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  background-image: url('');
  background-position: 10px 10px;
  background-repeat: no-repeat;
}

.dark .searchbox {
  background-color: #111;
  color: #eee;
}

.searchbox::placeholder {
  color: #ccc;
}

.dark .searchbox::placeholder {
  color: #666;
}

.filter {
  width: calc(60% - 64px);
}

.reflookup {
  width: calc(40% - 10px);
}

input[type=text]:focus {
  background-color: white;
  border: 1px solid #333;
}

.dark input[type=text]:focus {
  background-color: #333;
  border: 1px solid #ccc;
}

mark.highlight {
  background-color: #5050ff;
  color: #fff;
  padding: 2px;
  border-radius: 6px;
}

.dark mark.highlight {
  background-color: #76a6da;
  color: #111;
}

.menubtn {
  background-color: white;
  font-size: 16px;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
}

.dark .menubtn {
  filter: invert(1);
}

.menu {
  position: relative;
  display: inline-block;
}

.menu-content {
  display: none;
  position: absolute;
  background-color: white;
  right: 0;
  min-width: 300px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 100;
  padding: 8px;
}

.dark .menu-content {
  background-color: #111;
}

.menu:hover .menu-content {
  display: block;
}

.menu:hover .menubtn {
  background-color: #eee;
}

.dark .menu:hover .menubtn {}

.menu-label {
  display: inline-block;
  padding: 8px;
  border: 1px solid #ccc;
  border-top: 0;
  width: calc(100% - 18px);
}

.menu-label-top {
  border-top: 1px solid #ccc;
}

.menu-textbox {
  float: left;
  height: 24px;
  margin: 10px 5px;
  padding: 5px 5px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 14px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  width: calc(100% - 10px);
}

.dark .menu-textbox {
  background-color: #222;
  color: #eee;
}

#topmostdiv {
  transition: background-color 0.3s;
}

#top {
  height: 78px;
  border-bottom: 2px solid black;
}

.dark #top {
  border-bottom: 2px solid #ccc;
}

#dbg {
  display: block;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #aaa;
}

::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  margin: 3px 0;
  padding: 0;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  border-radius: 3px;
}

.slider:hover {
  opacity: 1;
}

.slider:focus {
  outline: none;
}

.slider::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
  border: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin-top: -4px;
}

.dark .slider::-webkit-slider-thumb {
  background: #3d3;
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
}

.slider::-moz-range-track {
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
}

.dark .slider::-moz-range-thumb {
  background: #3d3;
}

.slider::-ms-track {
  width: 100%;
  height: 8px;
  border-width: 3px 0;
  background: transparent;
  border-color: transparent;
  color: transparent;
  transition: opacity .2s;
}

.slider::-ms-fill-lower {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-fill-upper {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin: 0;
}

.shameless-plug {
  font-size: 0.8em;
  text-align: center;
  display: block;
}

.shameless-plug a {
  color: #0278a4;
}

.dark .shameless-plug a {
  color: #00b9fd;
}

  </style>
  <script type="text/javascript" >
///////////////////////////////////////////////
/*
  Split.js - v1.3.5
  MIT License
  https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});

///////////////////////////////////////////////

///////////////////////////////////////////////
var config = {"redraw_on_drag": true, "highlight_pin1": false, "extra_fields": [], "dark_mode": true, "bom_view": "left-right", "board_rotation": 0, "checkboxes": "Sourced,Placed", "show_silkscreen": true, "layer_view": "FB"}
///////////////////////////////////////////////

///////////////////////////////////////////////
var pcbdata = {"font_data": {" ": {"l": [], "w": 0.7619047619047619}, "\u00b0": {"l": [[[0.38095238095238093, -1.0476190476190474], [0.2857142857142857, -1.0], [0.23809523809523808, -0.9047619047619047], [0.2857142857142857, -0.8095238095238095], [0.38095238095238093, -0.7619047619047619], [0.47619047619047616, -0.8095238095238095], [0.5238095238095237, -0.9047619047619047], [0.47619047619047616, -1.0], [0.38095238095238093, -1.0476190476190474]]], "w": 0.7619047619047619}, "+": {"l": [[[0.23809523809523814, -0.42857142857142855], [1.0, -0.42857142857142855]], [[0.6190476190476191, -0.047619047619047616], [0.6190476190476191, -0.8095238095238095]]], "w": 1.2380952380952381}, "-": {"l": [[[0.23809523809523814, -0.42857142857142855], [1.0, -0.42857142857142855]]], "w": 1.2380952380952381}, "/": {"l": [[[0.9523809523809523, -1.0952380952380951], [0.09523809523809518, 0.19047619047619047]]], "w": 1.0476190476190474}, ".": {"l": [[[0.23809523809523808, -0.14285714285714285], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.047619047619047616], [0.19047619047619047, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.23809523809523808, -0.047619047619047616]]], "w": 0.47619047619047616}, "1": {"l": [[[0.7619047619047619, -0.047619047619047616], [0.19047619047619047, -0.047619047619047616]], [[0.47619047619047616, -0.047619047619047616], [0.47619047619047616, -1.0476190476190474], [0.38095238095238093, -0.9047619047619047], [0.2857142857142857, -0.8095238095238095], [0.19047619047619047, -0.7619047619047619]]], "w": 0.9523809523809523}, "0": {"l": [[[0.42857142857142855, -1.0476190476190474], [0.5238095238095237, -1.0476190476190474], [0.6190476190476191, -1.0], [0.6666666666666666, -0.9523809523809523], [0.7142857142857142, -0.8571428571428571], [0.7619047619047619, -0.6666666666666666], [0.7619047619047619, -0.42857142857142855], [0.7142857142857142, -0.23809523809523808], [0.6666666666666666, -0.14285714285714285], [0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.42857142857142855, -0.047619047619047616], [0.3333333333333333, -0.09523809523809523], [0.2857142857142857, -0.14285714285714285], [0.23809523809523808, -0.23809523809523808], [0.19047619047619047, -0.42857142857142855], [0.19047619047619047, -0.6666666666666666], [0.23809523809523808, -0.8571428571428571], [0.2857142857142857, -0.9523809523809523], [0.3333333333333333, -1.0], [0.42857142857142855, -1.0476190476190474]]], "w": 0.9523809523809523}, "3": {"l": [[[0.14285714285714285, -1.0476190476190474], [0.7619047619047619, -1.0476190476190474], [0.42857142857142855, -0.6666666666666666], [0.5714285714285714, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.7619047619047619, -0.47619047619047616], [0.7619047619047619, -0.23809523809523808], [0.7142857142857142, -0.14285714285714285], [0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.2857142857142857, -0.047619047619047616], [0.19047619047619047, -0.09523809523809523], [0.14285714285714285, -0.14285714285714285]]], "w": 0.9523809523809523}, "2": {"l": [[[0.19047619047619047, -0.9523809523809523], [0.23809523809523808, -1.0], [0.3333333333333333, -1.0476190476190474], [0.5714285714285714, -1.0476190476190474], [0.6666666666666666, -1.0], [0.7142857142857142, -0.9523809523809523], [0.7619047619047619, -0.8571428571428571], [0.7619047619047619, -0.7619047619047619], [0.7142857142857142, -0.6190476190476191], [0.14285714285714285, -0.047619047619047616], [0.7619047619047619, -0.047619047619047616]]], "w": 0.9523809523809523}, "5": {"l": [[[0.7142857142857142, -1.0476190476190474], [0.23809523809523808, -1.0476190476190474], [0.19047619047619047, -0.5714285714285714], [0.23809523809523808, -0.6190476190476191], [0.3333333333333333, -0.6666666666666666], [0.5714285714285714, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.7619047619047619, -0.47619047619047616], [0.7619047619047619, -0.23809523809523808], [0.7142857142857142, -0.14285714285714285], [0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523], [0.19047619047619047, -0.14285714285714285]]], "w": 0.9523809523809523}, "4": {"l": [[[0.6666666666666666, -0.7142857142857142], [0.6666666666666666, -0.047619047619047616]], [[0.42857142857142855, -1.0952380952380951], [0.19047619047619047, -0.38095238095238093], [0.8095238095238095, -0.38095238095238093]]], "w": 0.9523809523809523}, "7": {"l": [[[0.14285714285714285, -1.0476190476190474], [0.8095238095238095, -1.0476190476190474], [0.38095238095238093, -0.047619047619047616]]], "w": 0.9523809523809523}, "6": {"l": [[[0.6666666666666666, -1.0476190476190474], [0.47619047619047616, -1.0476190476190474], [0.38095238095238093, -1.0], [0.3333333333333333, -0.9523809523809523], [0.23809523809523808, -0.8095238095238095], [0.19047619047619047, -0.6190476190476191], [0.19047619047619047, -0.23809523809523808], [0.23809523809523808, -0.14285714285714285], [0.2857142857142857, -0.09523809523809523], [0.38095238095238093, -0.047619047619047616], [0.5714285714285714, -0.047619047619047616], [0.6666666666666666, -0.09523809523809523], [0.7142857142857142, -0.14285714285714285], [0.7619047619047619, -0.23809523809523808], [0.7619047619047619, -0.47619047619047616], [0.7142857142857142, -0.5714285714285714], [0.6666666666666666, -0.6190476190476191], [0.5714285714285714, -0.6666666666666666], [0.38095238095238093, -0.6666666666666666], [0.2857142857142857, -0.6190476190476191], [0.23809523809523808, -0.5714285714285714], [0.19047619047619047, -0.47619047619047616]]], "w": 0.9523809523809523}, "9": {"l": [[[0.2857142857142857, -0.047619047619047616], [0.47619047619047616, -0.047619047619047616], [0.5714285714285714, -0.09523809523809523], [0.6190476190476191, -0.14285714285714285], [0.7142857142857142, -0.2857142857142857], [0.7619047619047619, -0.47619047619047616], [0.7619047619047619, -0.8571428571428571], [0.7142857142857142, -0.9523809523809523], [0.6666666666666666, -1.0], [0.5714285714285714, -1.0476190476190474], [0.38095238095238093, -1.0476190476190474], [0.2857142857142857, -1.0], [0.23809523809523808, -0.9523809523809523], [0.19047619047619047, -0.8571428571428571], [0.19047619047619047, -0.6190476190476191], [0.23809523809523808, -0.5238095238095237], [0.2857142857142857, -0.47619047619047616], [0.38095238095238093, -0.42857142857142855], [0.5714285714285714, -0.42857142857142855], [0.6666666666666666, -0.47619047619047616], [0.7142857142857142, -0.5238095238095237], [0.7619047619047619, -0.6190476190476191]]], "w": 0.9523809523809523}, "8": {"l": [[[0.38095238095238093, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.23809523809523808, -0.7142857142857142], [0.19047619047619047, -0.8095238095238095], [0.19047619047619047, -0.8571428571428571], [0.23809523809523808, -0.9523809523809523], [0.2857142857142857, -1.0], [0.38095238095238093, -1.0476190476190474], [0.5714285714285714, -1.0476190476190474], [0.6666666666666666, -1.0], [0.7142857142857142, -0.9523809523809523], [0.7619047619047619, -0.8571428571428571], [0.7619047619047619, -0.8095238095238095], [0.7142857142857142, -0.7142857142857142], [0.6666666666666666, -0.6666666666666666], [0.5714285714285714, -0.6190476190476191], [0.38095238095238093, -0.6190476190476191], [0.2857142857142857, -0.5714285714285714], [0.23809523809523808, -0.5238095238095237], [0.19047619047619047, -0.42857142857142855], [0.19047619047619047, -0.23809523809523808], [0.23809523809523808, -0.14285714285714285], [0.2857142857142857, -0.09523809523809523], [0.38095238095238093, -0.047619047619047616], [0.5714285714285714, -0.047619047619047616], [0.6666666666666666, -0.09523809523809523], [0.7142857142857142, -0.14285714285714285], [0.7619047619047619, -0.23809523809523808], [0.7619047619047619, -0.42857142857142855], [0.7142857142857142, -0.5238095238095237], [0.6666666666666666, -0.5714285714285714], [0.5714285714285714, -0.6190476190476191]]], "w": 0.9523809523809523}, "A": {"l": [[[0.19047619047619047, -0.3333333333333333], [0.6666666666666666, -0.3333333333333333]], [[0.09523809523809523, -0.047619047619047616], [0.42857142857142855, -1.0476190476190474], [0.7619047619047619, -0.047619047619047616]]], "w": 0.8571428571428571}, "@": {"l": [[[0.8571428571428571, -0.5238095238095237], [0.8095238095238095, -0.5714285714285714], [0.7142857142857142, -0.6190476190476191], [0.6190476190476191, -0.6190476190476191], [0.5238095238095237, -0.5714285714285714], [0.47619047619047616, -0.5238095238095237], [0.42857142857142855, -0.42857142857142855], [0.42857142857142855, -0.3333333333333333], [0.47619047619047616, -0.23809523809523808], [0.5238095238095237, -0.19047619047619047], [0.6190476190476191, -0.14285714285714285], [0.7142857142857142, -0.14285714285714285], [0.8095238095238095, -0.19047619047619047], [0.8571428571428571, -0.23809523809523808]], [[0.8571428571428571, -0.6190476190476191], [0.8571428571428571, -0.23809523809523808], [0.9047619047619047, -0.19047619047619047], [0.9523809523809523, -0.19047619047619047], [1.0476190476190474, -0.23809523809523808], [1.0952380952380951, -0.3333333333333333], [1.0952380952380951, -0.5714285714285714], [1.0, -0.7142857142857142], [0.8571428571428571, -0.8095238095238095], [0.6666666666666666, -0.8571428571428571], [0.47619047619047616, -0.8095238095238095], [0.3333333333333333, -0.7142857142857142], [0.23809523809523808, -0.5714285714285714], [0.19047619047619047, -0.38095238095238093], [0.23809523809523808, -0.19047619047619047], [0.3333333333333333, -0.047619047619047616], [0.47619047619047616, 0.047619047619047616], [0.6666666666666666, 0.09523809523809523], [0.8571428571428571, 0.047619047619047616], [1.0, -0.047619047619047616]]], "w": 1.2857142857142856}, "C": {"l": [[[0.8095238095238095, -0.14285714285714285], [0.7619047619047619, -0.09523809523809523], [0.6190476190476191, -0.047619047619047616], [0.5238095238095237, -0.047619047619047616], [0.38095238095238093, -0.09523809523809523], [0.2857142857142857, -0.19047619047619047], [0.23809523809523808, -0.2857142857142857], [0.19047619047619047, -0.47619047619047616], [0.19047619047619047, -0.6190476190476191], [0.23809523809523808, -0.8095238095238095], [0.2857142857142857, -0.9047619047619047], [0.38095238095238093, -1.0], [0.5238095238095237, -1.0476190476190474], [0.6190476190476191, -1.0476190476190474], [0.7619047619047619, -1.0], [0.8095238095238095, -0.9523809523809523]]], "w": 1.0}, "B": {"l": [[[0.5714285714285714, -0.5714285714285714], [0.7142857142857142, -0.5238095238095237], [0.7619047619047619, -0.47619047619047616], [0.8095238095238094, -0.38095238095238093], [0.8095238095238094, -0.23809523809523808], [0.7619047619047619, -0.14285714285714285], [0.7142857142857142, -0.09523809523809523], [0.619047619047619, -0.047619047619047616], [0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.5714285714285714, -1.0476190476190474], [0.6666666666666665, -1.0], [0.7142857142857142, -0.9523809523809523], [0.7619047619047619, -0.8571428571428571], [0.7619047619047619, -0.7619047619047619], [0.7142857142857142, -0.6666666666666666], [0.6666666666666665, -0.6190476190476191], [0.5714285714285714, -0.5714285714285714], [0.23809523809523803, -0.5714285714285714]]], "w": 1.0}, "E": {"l": [[[0.23809523809523808, -0.5714285714285714], [0.5714285714285714, -0.5714285714285714]], [[0.7142857142857142, -0.047619047619047616], [0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474], [0.7142857142857142, -1.0476190476190474]]], "w": 0.9047619047619047}, "D": {"l": [[[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.4761904761904761, -1.0476190476190474], [0.619047619047619, -1.0], [0.7142857142857142, -0.9047619047619047], [0.7619047619047619, -0.8095238095238095], [0.8095238095238094, -0.6190476190476191], [0.8095238095238094, -0.47619047619047616], [0.7619047619047619, -0.2857142857142857], [0.7142857142857142, -0.19047619047619047], [0.619047619047619, -0.09523809523809523], [0.4761904761904761, -0.047619047619047616], [0.23809523809523803, -0.047619047619047616]]], "w": 1.0}, "G": {"l": [[[0.7619047619047619, -1.0], [0.6666666666666666, -1.0476190476190474], [0.5238095238095237, -1.0476190476190474], [0.38095238095238093, -1.0], [0.2857142857142857, -0.9047619047619047], [0.23809523809523808, -0.8095238095238095], [0.19047619047619047, -0.6190476190476191], [0.19047619047619047, -0.47619047619047616], [0.23809523809523808, -0.2857142857142857], [0.2857142857142857, -0.19047619047619047], [0.38095238095238093, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.6190476190476191, -0.047619047619047616], [0.7619047619047619, -0.09523809523809523], [0.8095238095238095, -0.14285714285714285], [0.8095238095238095, -0.47619047619047616], [0.6190476190476191, -0.47619047619047616]]], "w": 1.0}, "F": {"l": [[[0.5714285714285714, -0.5714285714285714], [0.23809523809523808, -0.5714285714285714]], [[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474], [0.7142857142857142, -1.0476190476190474]]], "w": 0.8571428571428571}, "I": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474]]], "w": 0.47619047619047616}, "K": {"l": [[[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474]], [[0.8095238095238094, -0.047619047619047616], [0.3809523809523809, -0.6190476190476191]], [[0.8095238095238094, -1.0476190476190474], [0.23809523809523803, -0.47619047619047616]]], "w": 1.0}, "J": {"l": [[[0.5238095238095237, -1.0476190476190474], [0.5238095238095237, -0.3333333333333333], [0.47619047619047616, -0.19047619047619047], [0.38095238095238093, -0.09523809523809523], [0.23809523809523808, -0.047619047619047616], [0.14285714285714285, -0.047619047619047616]]], "w": 0.7619047619047619}, "M": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474], [0.5714285714285714, -0.3333333333333333], [0.9047619047619047, -1.0476190476190474], [0.9047619047619047, -0.047619047619047616]]], "w": 1.1428571428571428}, "L": {"l": [[[0.7142857142857142, -0.047619047619047616], [0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474]]], "w": 0.8095238095238095}, "O": {"l": [[[0.4285714285714285, -1.0476190476190474], [0.619047619047619, -1.0476190476190474], [0.7142857142857142, -1.0], [0.8095238095238094, -0.9047619047619047], [0.857142857142857, -0.7142857142857142], [0.857142857142857, -0.38095238095238093], [0.8095238095238094, -0.19047619047619047], [0.7142857142857142, -0.09523809523809523], [0.619047619047619, -0.047619047619047616], [0.4285714285714285, -0.047619047619047616], [0.33333333333333326, -0.09523809523809523], [0.23809523809523803, -0.19047619047619047], [0.1904761904761904, -0.38095238095238093], [0.1904761904761904, -0.7142857142857142], [0.23809523809523803, -0.9047619047619047], [0.33333333333333326, -1.0], [0.4285714285714285, -1.0476190476190474]]], "w": 1.0476190476190474}, "N": {"l": [[[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.8095238095238094, -0.047619047619047616], [0.8095238095238094, -1.0476190476190474]]], "w": 1.0476190476190474}, "Q": {"l": [[[0.9047619047619047, 0.047619047619047616], [0.8095238095238094, 0.0], [0.7142857142857142, -0.09523809523809523], [0.5714285714285714, -0.23809523809523808], [0.4761904761904761, -0.2857142857142857], [0.3809523809523809, -0.2857142857142857]], [[0.4285714285714285, -0.047619047619047616], [0.33333333333333326, -0.09523809523809523], [0.23809523809523803, -0.19047619047619047], [0.1904761904761904, -0.38095238095238093], [0.1904761904761904, -0.7142857142857142], [0.23809523809523803, -0.9047619047619047], [0.33333333333333326, -1.0], [0.4285714285714285, -1.0476190476190474], [0.619047619047619, -1.0476190476190474], [0.7142857142857142, -1.0], [0.8095238095238094, -0.9047619047619047], [0.857142857142857, -0.7142857142857142], [0.857142857142857, -0.38095238095238093], [0.8095238095238094, -0.19047619047619047], [0.7142857142857142, -0.09523809523809523], [0.619047619047619, -0.047619047619047616], [0.4285714285714285, -0.047619047619047616]]], "w": 1.0476190476190474}, "P": {"l": [[[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.619047619047619, -1.0476190476190474], [0.7142857142857142, -1.0], [0.7619047619047619, -0.9523809523809523], [0.8095238095238094, -0.8571428571428571], [0.8095238095238094, -0.7142857142857142], [0.7619047619047619, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.619047619047619, -0.5238095238095237], [0.23809523809523803, -0.5238095238095237]]], "w": 1.0}, "S": {"l": [[[0.19047619047619047, -0.09523809523809523], [0.3333333333333333, -0.047619047619047616], [0.5714285714285714, -0.047619047619047616], [0.6666666666666666, -0.09523809523809523], [0.7142857142857142, -0.14285714285714285], [0.7619047619047619, -0.23809523809523808], [0.7619047619047619, -0.3333333333333333], [0.7142857142857142, -0.42857142857142855], [0.6666666666666666, -0.47619047619047616], [0.5714285714285714, -0.5238095238095237], [0.38095238095238093, -0.5714285714285714], [0.2857142857142857, -0.6190476190476191], [0.23809523809523808, -0.6666666666666666], [0.19047619047619047, -0.7619047619047619], [0.19047619047619047, -0.8571428571428571], [0.23809523809523808, -0.9523809523809523], [0.2857142857142857, -1.0], [0.38095238095238093, -1.0476190476190474], [0.6190476190476191, -1.0476190476190474], [0.7619047619047619, -1.0]]], "w": 0.9523809523809523}, "R": {"l": [[[0.8095238095238094, -0.047619047619047616], [0.4761904761904761, -0.5238095238095237]], [[0.23809523809523803, -0.047619047619047616], [0.23809523809523803, -1.0476190476190474], [0.619047619047619, -1.0476190476190474], [0.7142857142857142, -1.0], [0.7619047619047619, -0.9523809523809523], [0.8095238095238094, -0.8571428571428571], [0.8095238095238094, -0.7142857142857142], [0.7619047619047619, -0.6190476190476191], [0.7142857142857142, -0.5714285714285714], [0.619047619047619, -0.5238095238095237], [0.23809523809523803, -0.5238095238095237]]], "w": 1.0}, "U": {"l": [[[0.23809523809523803, -1.0476190476190474], [0.23809523809523803, -0.23809523809523808], [0.28571428571428564, -0.14285714285714285], [0.33333333333333326, -0.09523809523809523], [0.4285714285714285, -0.047619047619047616], [0.619047619047619, -0.047619047619047616], [0.7142857142857142, -0.09523809523809523], [0.7619047619047619, -0.14285714285714285], [0.8095238095238094, -0.23809523809523808], [0.8095238095238094, -1.0476190476190474]]], "w": 1.0476190476190474}, "T": {"l": [[[0.09523809523809523, -1.0476190476190474], [0.6666666666666666, -1.0476190476190474]], [[0.38095238095238093, -0.047619047619047616], [0.38095238095238093, -1.0476190476190474]]], "w": 0.7619047619047619}, "W": {"l": [[[0.14285714285714285, -1.0476190476190474], [0.38095238095238093, -0.047619047619047616], [0.5714285714285714, -0.7619047619047619], [0.7619047619047619, -0.047619047619047616], [1.0, -1.0476190476190474]]], "w": 1.1428571428571428}, "V": {"l": [[[0.09523809523809523, -1.0476190476190474], [0.42857142857142855, -0.047619047619047616], [0.7619047619047619, -1.0476190476190474]]], "w": 0.8571428571428571}, "Z": {"l": [[[0.14285714285714285, -1.0476190476190474], [0.8095238095238095, -1.0476190476190474], [0.14285714285714285, -0.047619047619047616], [0.8095238095238095, -0.047619047619047616]]], "w": 0.9523809523809523}, "a": {"l": [[[0.6666666666666666, -0.047619047619047616], [0.6666666666666666, -0.5714285714285714], [0.6190476190476191, -0.6666666666666666], [0.5238095238095237, -0.7142857142857142], [0.3333333333333333, -0.7142857142857142], [0.23809523809523808, -0.6666666666666666]], [[0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523], [0.19047619047619047, -0.19047619047619047], [0.19047619047619047, -0.2857142857142857], [0.23809523809523808, -0.38095238095238093], [0.3333333333333333, -0.42857142857142855], [0.5714285714285714, -0.42857142857142855], [0.6666666666666666, -0.47619047619047616]]], "w": 0.9047619047619047}, "c": {"l": [[[0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.19047619047619047, -0.23809523809523808], [0.19047619047619047, -0.5238095238095237], [0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5714285714285714, -0.7142857142857142], [0.6666666666666666, -0.6666666666666666]]], "w": 0.8571428571428571}, "b": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474]], [[0.23809523809523808, -0.6666666666666666], [0.3333333333333333, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5238095238095237], [0.7142857142857142, -0.23809523809523808], [0.6666666666666666, -0.14285714285714285], [0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523]]], "w": 0.9047619047619047}, "e": {"l": [[[0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.3333333333333333, -0.047619047619047616], [0.23809523809523808, -0.09523809523809523], [0.19047619047619047, -0.19047619047619047], [0.19047619047619047, -0.5714285714285714], [0.23809523809523808, -0.6666666666666666], [0.3333333333333333, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.5714285714285714], [0.6666666666666666, -0.47619047619047616], [0.19047619047619047, -0.38095238095238093]]], "w": 0.8571428571428571}, "d": {"l": [[[0.6666666666666666, -0.047619047619047616], [0.6666666666666666, -1.0476190476190474]], [[0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.19047619047619047, -0.23809523809523808], [0.19047619047619047, -0.5238095238095237], [0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5714285714285714, -0.7142857142857142], [0.6666666666666666, -0.6666666666666666]]], "w": 0.9047619047619047}, "g": {"l": [[[0.6666666666666666, -0.7142857142857142], [0.6666666666666666, 0.09523809523809523], [0.6190476190476191, 0.19047619047619047], [0.5714285714285714, 0.23809523809523808], [0.47619047619047616, 0.2857142857142857], [0.3333333333333333, 0.2857142857142857], [0.23809523809523808, 0.23809523809523808]], [[0.6666666666666666, -0.09523809523809523], [0.5714285714285714, -0.047619047619047616], [0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.19047619047619047, -0.23809523809523808], [0.19047619047619047, -0.5238095238095237], [0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5714285714285714, -0.7142857142857142], [0.6666666666666666, -0.6666666666666666]]], "w": 0.9047619047619047}, "i": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -0.7142857142857142]], [[0.23809523809523808, -1.0476190476190474], [0.19047619047619047, -1.0], [0.23809523809523808, -0.9523809523809523], [0.2857142857142857, -1.0], [0.23809523809523808, -1.0476190476190474], [0.23809523809523808, -0.9523809523809523]]], "w": 0.47619047619047616}, "h": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -1.0476190476190474]], [[0.6666666666666666, -0.047619047619047616], [0.6666666666666666, -0.5714285714285714], [0.6190476190476191, -0.6666666666666666], [0.5238095238095237, -0.7142857142857142], [0.38095238095238093, -0.7142857142857142], [0.2857142857142857, -0.6666666666666666], [0.23809523809523808, -0.6190476190476191]]], "w": 0.9047619047619047}, "m": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -0.7142857142857142]], [[0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.5714285714285714], [0.6666666666666666, -0.047619047619047616]], [[0.6666666666666666, -0.5714285714285714], [0.7142857142857142, -0.6666666666666666], [0.8095238095238095, -0.7142857142857142], [0.9523809523809523, -0.7142857142857142], [1.0476190476190474, -0.6666666666666666], [1.0952380952380951, -0.5714285714285714], [1.0952380952380951, -0.047619047619047616]]], "w": 1.3333333333333333}, "l": {"l": [[[0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.19047619047619047], [0.23809523809523808, -1.0476190476190474]]], "w": 0.5238095238095237}, "o": {"l": [[[0.38095238095238093, -0.047619047619047616], [0.2857142857142857, -0.09523809523809523], [0.23809523809523808, -0.14285714285714285], [0.19047619047619047, -0.23809523809523808], [0.19047619047619047, -0.5238095238095237], [0.23809523809523808, -0.6190476190476191], [0.2857142857142857, -0.6666666666666666], [0.38095238095238093, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142], [0.6190476190476191, -0.6666666666666666], [0.6666666666666666, -0.6190476190476191], [0.7142857142857142, -0.5238095238095237], [0.7142857142857142, -0.23809523809523808], [0.6666666666666666, -0.14285714285714285], [0.6190476190476191, -0.09523809523809523], [0.5238095238095237, -0.047619047619047616], [0.38095238095238093, -0.047619047619047616]]], "w": 0.9047619047619047}, "s": {"l": [[[0.19047619047619047, -0.09523809523809523], [0.2857142857142857, -0.047619047619047616], [0.47619047619047616, -0.047619047619047616], [0.5714285714285714, -0.09523809523809523], [0.6190476190476191, -0.19047619047619047], [0.6190476190476191, -0.23809523809523808], [0.5714285714285714, -0.3333333333333333], [0.47619047619047616, -0.38095238095238093], [0.3333333333333333, -0.38095238095238093], [0.23809523809523808, -0.42857142857142855], [0.19047619047619047, -0.5238095238095237], [0.19047619047619047, -0.5714285714285714], [0.23809523809523808, -0.6666666666666666], [0.3333333333333333, -0.7142857142857142], [0.47619047619047616, -0.7142857142857142], [0.5714285714285714, -0.6666666666666666]]], "w": 0.8095238095238095}, "r": {"l": [[[0.23809523809523808, -0.047619047619047616], [0.23809523809523808, -0.7142857142857142]], [[0.23809523809523808, -0.5238095238095237], [0.2857142857142857, -0.6190476190476191], [0.3333333333333333, -0.6666666666666666], [0.42857142857142855, -0.7142857142857142], [0.5238095238095237, -0.7142857142857142]]], "w": 0.6190476190476191}, "u": {"l": [[[0.6666666666666666, -0.7142857142857142], [0.6666666666666666, -0.047619047619047616]], [[0.23809523809523808, -0.7142857142857142], [0.23809523809523808, -0.19047619047619047], [0.2857142857142857, -0.09523809523809523], [0.38095238095238093, -0.047619047619047616], [0.5238095238095237, -0.047619047619047616], [0.6190476190476191, -0.09523809523809523], [0.6666666666666666, -0.14285714285714285]]], "w": 0.9047619047619047}, "t": {"l": [[[0.09523809523809523, -0.7142857142857142], [0.47619047619047616, -0.7142857142857142]], [[0.23809523809523808, -1.0476190476190474], [0.23809523809523808, -0.19047619047619047], [0.2857142857142857, -0.09523809523809523], [0.38095238095238093, -0.047619047619047616], [0.47619047619047616, -0.047619047619047616]]], "w": 0.5714285714285714}, "y": {"l": [[[0.14285714285714285, -0.7142857142857142], [0.38095238095238093, -0.047619047619047616]], [[0.6190476190476191, -0.7142857142857142], [0.38095238095238093, -0.047619047619047616], [0.2857142857142857, 0.19047619047619047], [0.23809523809523808, 0.23809523809523808], [0.14285714285714285, 0.2857142857142857]]], "w": 0.7619047619047619}, "x": {"l": [[[0.14285714285714285, -0.047619047619047616], [0.6666666666666666, -0.7142857142857142]], [[0.14285714285714285, -0.7142857142857142], [0.6666666666666666, -0.047619047619047616]]], "w": 0.8095238095238095}}, "modules": [{"layer": "B", "center": [85.5, 74.0], "pads": [{"layers": ["F", "B"], "angle": -180.0, "pos": [86.77, 74.0], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [84.22999999999999, 74.0], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}], "drawings": [], "ref": "D8", "bbox": {"pos": [82.24499899999999, 70.724999], "size": [6.500001999999999, 6.550002]}}, {"layer": "B", "center": [34.5, 84.0], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [35.769999999999996, 84.0], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [33.23, 84.0], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}], "drawings": [], "ref": "D7", "bbox": {"pos": [31.254998999999998, 80.724999], "size": [6.500001999999999, 6.550002]}}, {"layer": "B", "center": [34.5, 74.0], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [33.23, 74.0], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [35.769999999999996, 74.0], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}], "drawings": [], "ref": "D6", "bbox": {"pos": [31.254998999999998, 70.724999], "size": [6.500001999999999, 6.550002]}}, {"layer": "B", "center": [85.5, 95.0], "pads": [{"layers": ["B"], "angle": -0.0, "pos": [89.47999999999999, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [89.47999999999999, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [81.52, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [81.52, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}], "drawings": [], "ref": "SW4", "bbox": {"pos": [80.424999, 91.57499899999999], "size": [10.150001999999999, 6.850002]}}, {"layer": "B", "center": [68.5, 95.0], "pads": [{"layers": ["B"], "angle": -0.0, "pos": [64.52, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [64.52, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [72.47999999999999, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [72.47999999999999, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}], "drawings": [], "ref": "SW3", "bbox": {"pos": [63.424999, 91.57499899999999], "size": [10.150001999999999, 6.850002]}}, {"layer": "B", "center": [51.5, 95.0], "pads": [{"layers": ["B"], "angle": -0.0, "pos": [55.48, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [55.48, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [47.519999999999996, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [47.519999999999996, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}], "drawings": [], "ref": "SW2", "bbox": {"pos": [46.424999, 91.57499899999999], "size": [10.150001999999999, 6.850002]}}, {"layer": "B", "center": [34.5, 95.0], "pads": [{"layers": ["B"], "angle": -0.0, "pos": [30.52, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [30.52, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [38.48, 97.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5499999999999998, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [38.48, 92.75], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5499999999999998, 1.3]}], "drawings": [], "ref": "SW1", "bbox": {"pos": [29.424999, 91.57499899999999], "size": [10.150001999999999, 6.850002]}}, {"layer": "F", "center": [97.536, 79.883], "pads": [{"layers": ["F", "B"], "angle": -180.0, "pos": [97.536, 79.883], "drillsize": [1.0, 1.0], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [1.7, 1.7]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [97.536, 77.343], "drillsize": [1.0, 1.0], "shape": "oval", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7, 1.7]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [97.536, 74.803], "drillsize": [1.0, 1.0], "shape": "oval", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7, 1.7]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [97.536, 72.26299999999999], "drillsize": [1.0, 1.0], "shape": "oval", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7, 1.7]}], "drawings": [], "ref": "J4", "bbox": {"pos": [95.710999, 70.457999], "size": [3.6500019999999997, 11.250002]}}, {"layer": "F", "center": [62.23, 64.13499999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [62.23, 65.085], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [62.23, 63.184999999999995], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R33", "bbox": {"pos": [61.289998999999995, 62.559999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [67.31, 64.13499999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [67.31, 63.184999999999995], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [67.31, 65.085], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R34", "bbox": {"pos": [66.36999899999999, 62.559999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [93.345, 80.77199999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [93.345, 81.722], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [93.345, 79.822], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R35", "bbox": {"pos": [92.40499899999999, 79.19699899999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [52.07, 64.13499999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [52.07, 63.184999999999995], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [52.07, 65.085], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R31", "bbox": {"pos": [51.129999, 62.559999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [68.326, 96.774], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [68.326, 95.824], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [68.326, 97.72399999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R36", "bbox": {"pos": [67.385999, 95.198999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [57.15, 64.13499999999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [57.15, 63.184999999999995], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [57.15, 65.085], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R32", "bbox": {"pos": [56.209998999999996, 62.559999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [96.52, 91.313], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [95.52, 91.313], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [97.52, 91.313], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C6", "bbox": {"pos": [94.74499899999999, 90.402999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "B", "center": [91.948, 93.726], "pads": [{"layers": ["B"], "angle": -90.0, "pos": [91.948, 94.726], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["B"], "angle": -90.0, "pos": [91.948, 92.726], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C18", "bbox": {"pos": [91.037999, 91.950999], "size": [1.820002, 3.5500019999999997]}}, {"layer": "F", "center": [96.52, 93.091], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [95.52, 93.091], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [97.52, 93.091], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C17", "bbox": {"pos": [94.74499899999999, 92.180999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [82.931, 91.059], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [82.931, 90.059], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -270.0, "pos": [82.931, 92.059], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C16", "bbox": {"pos": [82.020999, 89.283999], "size": [1.820002, 3.5500019999999997]}}, {"layer": "F", "center": [73.279, 72.64399999999999], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [72.279, 72.64399999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [74.279, 72.64399999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C15", "bbox": {"pos": [71.503999, 71.733999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [62.864999999999995, 91.948], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [62.864999999999995, 92.948], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -90.0, "pos": [62.864999999999995, 90.948], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C14", "bbox": {"pos": [61.954998999999994, 90.17299899999999], "size": [1.820002, 3.5500019999999997]}}, {"layer": "F", "center": [91.059, 107.06099999999999], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [91.059, 106.06099999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -90.0, "pos": [91.059, 108.06099999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C12", "bbox": {"pos": [90.14899899999999, 105.28599899999999], "size": [1.820002, 3.5500019999999997]}}, {"layer": "F", "center": [56.769, 91.948], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [56.769, 90.948], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -270.0, "pos": [56.769, 92.948], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C11", "bbox": {"pos": [55.858999, 90.17299899999999], "size": [1.820002, 3.5500019999999997]}}, {"layer": "F", "center": [48.641, 96.52], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [47.641, 96.52], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [49.641, 96.52], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C9", "bbox": {"pos": [46.865998999999995, 95.609999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [26.416, 97.155], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [25.416, 97.155], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -0.0, "pos": [27.416, 97.155], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C19", "bbox": {"pos": [24.640998999999997, 96.24499899999999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [85.344, 98.044], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [84.344, 98.044], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [86.344, 98.044], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C4", "bbox": {"pos": [83.56899899999999, 97.13399899999999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [96.52, 83.947], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [97.52, 83.947], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [95.52, 83.947], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C2", "bbox": {"pos": [94.74499899999999, 83.036999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [26.416, 93.345], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [25.416, 93.345], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [27.416, 93.345], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C20", "bbox": {"pos": [24.640998999999997, 92.43499899999999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [96.52, 89.535], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [97.52, 89.535], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [95.52, 89.535], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C1", "bbox": {"pos": [94.74499899999999, 88.624999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [85.344, 107.94999999999999], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [84.344, 107.94999999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [86.344, 107.94999999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C5", "bbox": {"pos": [83.56899899999999, 107.039999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [61.849, 94.869], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [62.849, 94.869], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.25]}, {"layers": ["F"], "angle": -180.0, "pos": [60.849, 94.869], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.25]}], "drawings": [], "ref": "C13", "bbox": {"pos": [60.073999, 93.95899899999999], "size": [3.5500019999999997, 1.820002]}}, {"layer": "F", "center": [91.059, 103.505], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [91.059, 102.55499999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [91.059, 104.455], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "BL1", "bbox": {"pos": [90.033999, 101.879999], "size": [2.050002, 3.250002]}}, {"layer": "F", "center": [96.52, 94.996], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [97.47, 94.996], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -180.0, "pos": [95.57, 94.996], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "BL2", "bbox": {"pos": [94.894999, 93.97099899999999], "size": [3.250002, 2.050002]}}, {"layer": "B", "center": [43.561, 92.71], "pads": [{"layers": ["B"], "angle": -180.0, "pos": [44.510999999999996, 92.71], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["B"], "angle": -180.0, "pos": [42.611, 92.71], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R24", "bbox": {"pos": [41.985999, 91.769999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "B", "center": [59.943999999999996, 92.71], "pads": [{"layers": ["B"], "angle": -180.0, "pos": [58.994, 92.71], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["B"], "angle": -180.0, "pos": [60.894, 92.71], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R23", "bbox": {"pos": [58.368998999999995, 91.769999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [88.646, 100.96499999999999], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [88.646, 101.91499999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [88.646, 100.015], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R22", "bbox": {"pos": [87.70599899999999, 99.38999899999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [85.344, 106.045], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [86.294, 106.045], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -0.0, "pos": [84.39399999999999, 106.045], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R21", "bbox": {"pos": [83.768999, 105.10499899999999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "B", "center": [89.408, 74.92999999999999], "pads": [{"layers": ["B"], "angle": -270.0, "pos": [89.408, 73.97999999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["B"], "angle": -270.0, "pos": [89.408, 75.88], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R11", "bbox": {"pos": [88.46799899999999, 73.35499899999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [52.958999999999996, 89.916], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [52.958999999999996, 90.866], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [52.958999999999996, 88.966], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R15", "bbox": {"pos": [52.018999, 88.340999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [51.053999999999995, 89.916], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [51.053999999999995, 90.866], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [51.053999999999995, 88.966], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R14", "bbox": {"pos": [50.113999, 88.340999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [47.244, 89.916], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [47.244, 88.966], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [47.244, 90.866], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R13", "bbox": {"pos": [46.303999, 88.340999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [49.149, 89.916], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [49.149, 88.966], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [49.149, 90.866], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R12", "bbox": {"pos": [48.208999, 88.340999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "B", "center": [77.089, 92.71], "pads": [{"layers": ["B"], "angle": -180.0, "pos": [78.039, 92.71], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["B"], "angle": -180.0, "pos": [76.139, 92.71], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R25", "bbox": {"pos": [75.513999, 91.769999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "B", "center": [77.089, 94.74199999999999], "pads": [{"layers": ["B"], "angle": -0.0, "pos": [78.039, 94.74199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["B"], "angle": -0.0, "pos": [76.139, 94.74199999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R27", "bbox": {"pos": [75.513999, 93.801999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [78.359, 99.187], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [78.359, 100.137], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [78.359, 98.237], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R1", "bbox": {"pos": [77.418999, 97.611999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [96.52, 96.901], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [97.47, 96.901], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -0.0, "pos": [95.57, 96.901], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R2", "bbox": {"pos": [94.944999, 95.960999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [75.946, 101.981], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [74.996, 101.981], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -0.0, "pos": [76.896, 101.981], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R3", "bbox": {"pos": [74.370999, 101.040999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [70.104, 109.09299999999999], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [71.054, 109.09299999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -0.0, "pos": [69.154, 109.09299999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "NTC1", "bbox": {"pos": [68.528999, 108.152999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [96.52, 85.85199999999999], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [97.47, 85.85199999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -180.0, "pos": [95.57, 85.85199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R4", "bbox": {"pos": [94.944999, 84.911999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [75.946, 104.01299999999999], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [76.896, 104.01299999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -0.0, "pos": [74.996, 104.01299999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R5", "bbox": {"pos": [74.370999, 103.072999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [96.52, 87.75699999999999], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [97.47, 87.75699999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -180.0, "pos": [95.57, 87.75699999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R6", "bbox": {"pos": [94.944999, 86.816999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [85.344, 99.949], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [84.39399999999999, 99.949], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -180.0, "pos": [86.294, 99.949], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R7", "bbox": {"pos": [83.768999, 99.00899899999999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [26.416, 95.25], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [27.366, 95.25], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -180.0, "pos": [25.465999999999998, 95.25], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R30", "bbox": {"pos": [24.840999, 94.30999899999999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "F", "center": [45.085, 95.377], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [45.085, 96.827], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 1.7]}, {"layers": ["F"], "angle": -90.0, "pos": [45.085, 93.92699999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 1.7]}], "drawings": [], "ref": "BL3", "bbox": {"pos": [43.859998999999995, 93.15199899999999], "size": [2.450002, 4.450002]}}, {"layer": "F", "center": [85.344, 102.997], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [86.294, 101.89699999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -270.0, "pos": [85.344, 101.89699999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -270.0, "pos": [84.39399999999999, 101.89699999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -270.0, "pos": [84.39399999999999, 104.097], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -270.0, "pos": [86.294, 104.097], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}], "drawings": [], "ref": "U2", "bbox": {"pos": [83.518999, 101.07199899999999], "size": [3.6500019999999997, 3.850002]}}, {"layer": "F", "center": [58.674, 95.758], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [58.674, 94.658], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.2, 1.2]}, {"layers": ["F"], "angle": -270.0, "pos": [58.674, 96.85799999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.2, 1.2]}], "drawings": [], "ref": "D9", "bbox": {"pos": [57.798998999999995, 93.78299899999999], "size": [1.7500019999999998, 3.950002]}}, {"layer": "F", "center": [61.849, 96.774], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [62.799, 96.774], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -180.0, "pos": [60.898999999999994, 96.774], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R28", "bbox": {"pos": [60.273998999999996, 95.83399899999999], "size": [3.1500019999999997, 1.880002]}}, {"layer": "B", "center": [85.5345, 84.0], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [81.72449999999999, 84.0], "drillsize": [1.0, 1.0], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [2.0, 2.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [89.3245, 84.0], "drillsize": [1.0, 1.0], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [2.0, 2.0]}], "drawings": [], "ref": "BZ1", "bbox": {"pos": [79.249499, 77.724999], "size": [12.550002, 12.550002]}}, {"layer": "F", "center": [54.864, 104.01299999999999], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [54.864, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [3.0, 3.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [59.943999999999996, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [3.0, 3.0]}], "drawings": [], "ref": "J3", "bbox": {"pos": [52.128999, 99.987999], "size": [10.550002, 8.050002]}}, {"layer": "F", "center": [39.623999999999995, 104.01299999999999], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [39.623999999999995, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [3.0, 3.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [44.704, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [3.0, 3.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [49.784, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [3.0, 3.0]}], "drawings": [], "ref": "J2", "bbox": {"pos": [36.878999, 99.987999], "size": [15.650001999999999, 8.050002]}}, {"layer": "F", "center": [88.646, 106.045], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [88.646, 104.67], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.95, 1.5]}, {"layers": ["F"], "angle": -270.0, "pos": [88.646, 107.42], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.95, 1.5]}], "drawings": [], "ref": "C3", "bbox": {"pos": [87.420999, 103.269999], "size": [2.450002, 5.550002]}}, {"layer": "F", "center": [37.592, 93.091], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [35.592, 93.091], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.5, 1.7999999999999998]}, {"layers": ["F"], "angle": -180.0, "pos": [39.592, 93.091], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [2.5, 1.7999999999999998]}], "drawings": [], "ref": "D4", "bbox": {"pos": [34.066998999999996, 91.31599899999999], "size": [7.050002, 3.5500019999999997]}}, {"layer": "F", "center": [37.592, 96.774], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [39.592, 96.774], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [2.5, 1.7999999999999998]}, {"layers": ["F"], "angle": -180.0, "pos": [35.592, 96.774], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.5, 1.7999999999999998]}], "drawings": [], "ref": "D5", "bbox": {"pos": [34.066998999999996, 94.998999], "size": [7.050002, 3.5500019999999997]}}, {"layer": "F", "center": [42.672, 95.377], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [42.672, 96.777], "shape": "roundrect", "radius": 0.25, "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.25, 1.75]}, {"layers": ["F"], "angle": -90.0, "pos": [42.672, 93.97699999999999], "shape": "roundrect", "radius": 0.25, "offset": [0.0, 0.0], "type": "smd", "size": [1.25, 1.75]}], "drawings": [], "ref": "F1", "bbox": {"pos": [41.526998999999996, 93.07199899999999], "size": [2.290002, 4.610002]}}, {"layer": "F", "center": [26.416, 87.503], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [25.781, 90.65299999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [2.0, 0.64]}, {"layers": ["F"], "angle": -90.0, "pos": [27.051, 90.65299999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 0.64]}, {"layers": ["F"], "angle": -90.0, "pos": [27.051, 84.353], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 0.64]}, {"layers": ["F"], "angle": -90.0, "pos": [25.781, 84.353], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [2.0, 0.64]}], "drawings": [], "ref": "U3", "bbox": {"pos": [24.940998999999998, 83.07799899999999], "size": [2.950002, 8.850002]}}, {"layer": "F", "center": [30.226, 94.107], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [30.226, 97.207], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 3.1999999999999997]}, {"layers": ["F"], "angle": -90.0, "pos": [30.226, 91.00699999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 3.1999999999999997]}], "drawings": [], "ref": "R29", "bbox": {"pos": [28.345999, 90.231999], "size": [3.7600019999999996, 7.750001999999999]}}, {"layer": "F", "center": [56.1975, 67.6275], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [56.1975, 68.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [55.247499999999995, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [57.1475, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "Q2", "bbox": {"pos": [54.422498999999995, 65.90249899999999], "size": [3.5500019999999997, 3.450002]}}, {"layer": "F", "center": [65.532, 96.774], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [66.532, 97.72399999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -180.0, "pos": [66.532, 95.824], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -180.0, "pos": [64.532, 96.774], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "Q6", "bbox": {"pos": [63.806999, 94.998999], "size": [3.450002, 3.5500019999999997]}}, {"layer": "F", "center": [90.42399999999999, 80.77199999999999], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [89.42399999999999, 80.77199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -180.0, "pos": [91.42399999999999, 79.822], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -180.0, "pos": [91.42399999999999, 81.722], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "Q5", "bbox": {"pos": [88.698999, 78.996999], "size": [3.450002, 3.5500019999999997]}}, {"layer": "F", "center": [61.277499999999996, 67.6275], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [62.2275, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [60.3275, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [61.277499999999996, 68.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "Q3", "bbox": {"pos": [59.502499, 65.90249899999999], "size": [3.5500019999999997, 3.450002]}}, {"layer": "F", "center": [51.1175, 67.6275], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [51.1175, 68.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [50.1675, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [52.067499999999995, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "Q1", "bbox": {"pos": [49.342499, 65.90249899999999], "size": [3.5500019999999997, 3.450002]}}, {"layer": "F", "center": [66.3575, 67.6275], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [67.30749999999999, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [65.4075, 66.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [66.3575, 68.6275], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "Q4", "bbox": {"pos": [64.582499, 65.90249899999999], "size": [3.5500019999999997, 3.450002]}}, {"layer": "F", "center": [56.201319, 83.79506099999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [56.201319, 84.74506099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [56.201319, 82.845061], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R16", "bbox": {"pos": [55.261317999999996, 82.22005999999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [66.361319, 83.79506099999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [66.361319, 82.845061], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [66.361319, 84.74506099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R20", "bbox": {"pos": [65.421318, 82.22005999999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [63.821318999999995, 83.79506099999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [63.821318999999995, 84.74506099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [63.821318999999995, 82.845061], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R19", "bbox": {"pos": [62.881318, 82.22005999999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [58.741319, 83.79506099999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [58.741319, 82.845061], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [58.741319, 84.74506099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R17", "bbox": {"pos": [57.801317999999995, 82.22005999999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [53.661319, 74.143061], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [53.661319, 73.193061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [53.661319, 75.09306099999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R10", "bbox": {"pos": [52.721318, 72.56806], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [63.821318999999995, 74.143061], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [63.821318999999995, 75.09306099999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [63.821318999999995, 73.193061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R8", "bbox": {"pos": [62.881318, 72.56806], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [61.281318999999996, 74.143061], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [61.281318999999996, 73.193061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -90.0, "pos": [61.281318999999996, 75.09306099999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R9", "bbox": {"pos": [60.341317999999994, 72.56806], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [61.281318999999996, 83.79506099999999], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [61.281318999999996, 82.845061], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7, 1.3]}, {"layers": ["F"], "angle": -270.0, "pos": [61.281318999999996, 84.74506099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7, 1.3]}], "drawings": [], "ref": "R18", "bbox": {"pos": [60.341317999999994, 82.22005999999999], "size": [1.880002, 3.1500019999999997]}}, {"layer": "F", "center": [71.568319, 79.604061], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [68.868319, 75.159061], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 76.42906099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 77.699061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 78.969061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 80.23906099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 81.509061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 82.779061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [68.868319, 84.049061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 84.049061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 82.779061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 81.509061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 80.23906099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 78.969061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 77.699061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 76.42906099999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}, {"layers": ["F"], "angle": -0.0, "pos": [74.26831899999999, 75.159061], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.5, 0.6]}], "drawings": [], "ref": "U8", "bbox": {"pos": [67.843318, 74.32906], "size": [7.450002, 10.550002]}}, {"layer": "B", "center": [60.0, 79.0], "pads": [{"layers": ["F", "B"], "angle": -180.0, "pos": [66.35, 86.61999999999999], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [63.809999999999995, 86.61999999999999], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [61.269999999999996, 86.61999999999999], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [58.73, 86.61999999999999], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [56.19, 86.61999999999999], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [53.65, 86.61999999999999], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [66.35, 71.38], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [63.809999999999995, 71.38], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [61.269999999999996, 71.38], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [58.73, 71.38], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [56.19, 71.38], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}, {"layers": ["F", "B"], "angle": -180.0, "pos": [53.65, 71.38], "drillsize": [0.8999999999999999, 0.8999999999999999], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [1.7999999999999998, 1.7999999999999998]}], "drawings": [], "ref": "DS1", "bbox": {"pos": [41.124998999999995, 69.424999], "size": [37.750001999999995, 19.150002]}}, {"layer": "F", "center": [81.28, 104.902], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [80.28, 103.952], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -0.0, "pos": [80.28, 105.85199999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -0.0, "pos": [82.28, 104.902], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "D3", "bbox": {"pos": [79.554999, 103.126999], "size": [3.450002, 3.5500019999999997]}}, {"layer": "F", "center": [65.024, 104.01299999999999], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [65.024, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [3.0, 3.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [70.104, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [3.0, 3.0]}], "drawings": [], "ref": "TC1", "bbox": {"pos": [62.288999, 99.987999], "size": [10.550002, 8.050002]}}, {"layer": "F", "center": [42.672, 90.551], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [42.672, 89.051], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.5999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [42.672, 92.051], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.5999999999999999]}], "drawings": [], "ref": "C7", "bbox": {"pos": [41.591999, 88.275999], "size": [2.160002, 4.550002]}}, {"layer": "F", "center": [45.085, 90.551], "pads": [{"layers": ["F"], "angle": -270.0, "pos": [45.085, 92.051], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.5999999999999999]}, {"layers": ["F"], "angle": -270.0, "pos": [45.085, 89.051], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.5999999999999999]}], "drawings": [], "ref": "C8", "bbox": {"pos": [44.004999, 88.275999], "size": [2.160002, 4.550002]}}, {"layer": "F", "center": [53.339999999999996, 92.964], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [51.839999999999996, 92.964], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0, 1.5999999999999999]}, {"layers": ["F"], "angle": -0.0, "pos": [54.839999999999996, 92.964], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0, 1.5999999999999999]}], "drawings": [], "ref": "C10", "bbox": {"pos": [51.064999, 91.883999], "size": [4.550002, 2.160002]}}, {"layer": "F", "center": [51.815999999999995, 96.393], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [51.815999999999995, 97.79299999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.0999999999999999, 1.0999999999999999]}, {"layers": ["F"], "angle": -90.0, "pos": [51.815999999999995, 94.993], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.0999999999999999, 1.0999999999999999]}], "drawings": [], "ref": "D2", "bbox": {"pos": [50.640999, 94.167999], "size": [2.350002, 4.485002]}}, {"layer": "F", "center": [54.864, 96.774], "pads": [{"layers": ["F"], "angle": -90.0, "pos": [54.864, 97.874], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.7999999999999999, 2.6999999999999997]}, {"layers": ["F"], "angle": -90.0, "pos": [54.864, 95.67399999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.7999999999999999, 2.6999999999999997]}], "drawings": [], "ref": "L1", "bbox": {"pos": [53.038999, 94.948999], "size": [3.6500019999999997, 3.6500019999999997]}}, {"layer": "F", "center": [59.817, 91.948], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [58.717, 90.99799999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -0.0, "pos": [58.717, 91.948], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -0.0, "pos": [58.717, 92.898], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -0.0, "pos": [60.916999999999994, 92.898], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -0.0, "pos": [60.916999999999994, 90.99799999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}], "drawings": [], "ref": "U7", "bbox": {"pos": [57.891999, 90.122999], "size": [3.850002, 3.6500019999999997]}}, {"layer": "F", "center": [48.641, 93.59899999999999], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [49.741, 94.54899999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -180.0, "pos": [49.741, 93.59899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -180.0, "pos": [49.741, 92.649], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -180.0, "pos": [47.541, 92.649], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -180.0, "pos": [47.541, 94.54899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}, {"layers": ["F"], "angle": -180.0, "pos": [47.541, 93.59899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.06, 0.65]}], "drawings": [], "ref": "U6", "bbox": {"pos": [46.715999, 91.77399899999999], "size": [3.850002, 3.6500019999999997]}}, {"layer": "F", "center": [22.5, 62.5], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [22.5, 62.5], "drillsize": [2.5, 2.5], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [2.5, 2.5]}], "drawings": [], "ref": "H1", "bbox": {"pos": [19.724999, 59.724999], "size": [5.550002, 5.550002]}}, {"layer": "F", "center": [97.5, 107.5], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [97.5, 107.5], "drillsize": [2.5, 2.5], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [2.5, 2.5]}], "drawings": [], "ref": "H2", "bbox": {"pos": [94.724999, 104.724999], "size": [5.550002, 5.550002]}}, {"layer": "F", "center": [97.5, 62.5], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [97.5, 62.5], "drillsize": [2.5, 2.5], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [2.5, 2.5]}], "drawings": [], "ref": "H3", "bbox": {"pos": [94.724999, 59.724999], "size": [5.550002, 5.550002]}}, {"layer": "F", "center": [22.5, 107.5], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [22.5, 107.5], "drillsize": [2.5, 2.5], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [2.5, 2.5]}], "drawings": [], "ref": "H4", "bbox": {"pos": [19.724999, 104.724999], "size": [5.550002, 5.550002]}}, {"layer": "F", "center": [89.408, 91.694], "pads": [{"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 94.619], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 93.969], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 93.319], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 92.669], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 92.01899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 91.369], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 90.719], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 90.069], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 89.419], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [92.35799999999999, 88.76899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 88.76899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 89.419], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 90.069], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 90.719], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 91.369], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 92.01899999999999], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 92.669], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 93.319], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 93.969], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}, {"layers": ["F"], "angle": -180.0, "pos": [86.458, 94.619], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [1.45, 0.44999999999999996]}], "drawings": [], "ref": "U1", "bbox": {"pos": [85.432999, 88.118999], "size": [7.950002, 7.150002]}}, {"layer": "F", "center": [81.28, 101.219], "pads": [{"layers": ["F"], "angle": -0.0, "pos": [80.28, 100.26899999999999], "shape": "rect", "offset": [0.0, 0.0], "pin1": 1, "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -0.0, "pos": [80.28, 102.169], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}, {"layers": ["F"], "angle": -0.0, "pos": [82.28, 101.219], "shape": "rect", "offset": [0.0, 0.0], "type": "smd", "size": [0.8999999999999999, 0.7999999999999999]}], "drawings": [], "ref": "D1", "bbox": {"pos": [79.554999, 99.44399899999999], "size": [3.450002, 3.5500019999999997]}}, {"layer": "F", "center": [29.464, 104.01299999999999], "pads": [{"layers": ["F", "B"], "angle": -0.0, "pos": [29.464, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "rect", "offset": [0.0, 0.0], "drillshape": "circle", "pin1": 1, "type": "th", "size": [3.0, 3.0]}, {"layers": ["F", "B"], "angle": -0.0, "pos": [34.544, 104.01299999999999], "drillsize": [1.52, 1.52], "shape": "circle", "offset": [0.0, 0.0], "drillshape": "circle", "type": "th", "size": [3.0, 3.0]}], "drawings": [], "ref": "J1", "bbox": {"pos": [26.728998999999998, 99.987999], "size": [10.550002, 8.050002]}}], "edges": [{"start": [20.0, 110.0], "end": [20.0, 60.0], "type": "segment", "width": 0.15}, {"start": [100.0, 110.0], "end": [20.0, 110.0], "type": "segment", "width": 0.15}, {"start": [100.0, 60.0], "end": [100.0, 110.0], "type": "segment", "width": 0.15}, {"start": [20.0, 60.0], "end": [100.0, 60.0], "type": "segment", "width": 0.15}], "bom": {"both": [[1, "10uF", "CP_Tantalum_Case-A_EIA-3216-18_Reflow", [["C3", 59]], []], [9, "100nF", "C_0805", [["C2", 25], ["C9", 22], ["C11", 21], ["C12", 20], ["C15", 18], ["C16", 17], ["C18", 15], ["C19", 23], ["C20", 26]], []], [4, "10nF", "C_0805", [["C1", 27], ["C4", 24], ["C5", 28], ["C6", 14]], []], [1, "22nF", "C_0805", [["C13", 29]], []], [1, "1uF", "C_0805", [["C14", 19]], []], [1, "10uF", "C_0805", [["C17", 16]], []], [2, "4.7uF", "C_1206", [["C7", 83], ["C8", 84]], []], [1, "22uF", "C_1206", [["C10", 85]], []], [10, "1K", "R_0805", [["R3", 45], ["R5", 48], ["R6", 49], ["R22", 34], ["R31", 11], ["R32", 13], ["R33", 8], ["R34", 9], ["R35", 10], ["R36", 12]], []], [8, "120R", "R_0805", [["R8", 76], ["R9", 77], ["R10", 75], ["R16", 71], ["R17", 74], ["R18", 78], ["R19", 73], ["R20", 72]], []], [4, "1.5K", "R_0805", [["R23", 33], ["R24", 32], ["R25", 41], ["R27", 42]], []], [2, "220K", "R_0805", [["R7", 50], ["R21", 35]], []], [1, "220", "R_0805", [["R11", 36]], []], [1, "100K", "R_0805", [["R12", 40]], []], [1, "9.3K", "R_0805", [["R13", 39]], []], [1, "1.9K", "R_0805", [["R14", 38]], []], [1, "180R", "R_0805", [["R28", 55]], []], [1, "2.2K", "R_0805", [["R30", 51]], []], [1, "1.2K", "R_2512", [["R29", 64]], []], [1, "FNR3012S330MT", "L_Taiyo-Yuden_MD-3030", [["L1", 87]], []], [1, "D", "D_SMA", [["D4", 60]], []], [1, "D_TVS", "D_SMA", [["D5", 61]], []], [1, "B140HW", "D_SOD-123F", [["D2", 86]], []], [1, "LED", "LED_0805", [["D9", 54]], []], [1, "\u00b0C", "LED_D5.0mm", [["D6", 2]], []], [1, "TIME", "LED_D5.0mm", [["D7", 1]], []], [1, "ALARM", "LED_D5.0mm", [["D8", 0]], []], [2, "BAV99", "SOT-23", [["D1", 95], ["D3", 81]], []], [1, "TLP291", "SO-4_4.4x2.3mm_Pitch1.27mm", [["U3", 63]], []], [1, "74HC595", "SOIC-16_3.9x9.9mm_Pitch1.27mm", [["U8", 79]], []], [1, "GS8331", "SOT-23-5", [["U2", 53]], []], [1, "RT9193-3.3", "SOT-23-5", [["U7", 88]], []], [1, "MP2451", "SOT-23-6", [["U6", 89]], []], [1, "STM32F030F4Px", "TSSOP-20_4.4x6.5mm_Pitch0.65mm", [["U1", 94]], []], [1, "Polyfuse", "Fuse_1206_3216Metric", [["F1", 62]], []], [1, "UP", "SW_SPST_PTS645", [["SW1", 6]], []], [1, "DOWN", "SW_SPST_PTS645", [["SW2", 5]], []], [1, "SET", "SW_SPST_PTS645", [["SW3", 4]], []], [1, "ON/OFF", "SW_SPST_PTS645", [["SW4", 3]], []], [1, "Buzzer", "Buzzer_12x9.5RM7.6", [["BZ1", 56]], []], [1, "E1-3056CUR1", "E1-3056-CUR-1-CT", [["DS1", 80]], []], [2, "BLM18AG221SN1D", "L_0805", [["BL1", 30], ["BL2", 31]], []], [1, "BLM18AG221SN1D", "L_1206", [["BL3", 52]], []], [4, "MountingHole", "MountingHole_2.5mm", [["H1", 90], ["H2", 91], ["H3", 92], ["H4", 93]], []], [5, "10K", "R_0805", [["NTC1", 46], ["R1", 43], ["R2", 44], ["R4", 47], ["R15", 37]], []], [6, "BSS138", "SOT-23", [["Q1", 69], ["Q2", 65], ["Q3", 68], ["Q4", 70], ["Q5", 67], ["Q6", 66]], []], [1, "K Thermocouple", "TerminalBlock_bornier-2_P5.08mm", [["TC1", 82]], []], [1, "SWD", "Pin_Header_Straight_1x04_Pitch2.54mm", [["J4", 7]], []], [1, "PWR", "TerminalBlock_bornier-2_P5.08mm", [["J1", 96]], []], [1, "SSR", "TerminalBlock_bornier-2_P5.08mm", [["J3", 57]], []], [1, "Proximity", "TerminalBlock_bornier-3_P5.08mm", [["J2", 58]], []]], "B": [[1, "100nF", "C_0805", [["C18", 15]], []], [4, "1.5K", "R_0805", [["R23", 33], ["R24", 32], ["R25", 41], ["R27", 42]], []], [1, "220", "R_0805", [["R11", 36]], []], [1, "\u00b0C", "LED_D5.0mm", [["D6", 2]], []], [1, "TIME", "LED_D5.0mm", [["D7", 1]], []], [1, "ALARM", "LED_D5.0mm", [["D8", 0]], []], [1, "UP", "SW_SPST_PTS645", [["SW1", 6]], []], [1, "DOWN", "SW_SPST_PTS645", [["SW2", 5]], []], [1, "SET", "SW_SPST_PTS645", [["SW3", 4]], []], [1, "ON/OFF", "SW_SPST_PTS645", [["SW4", 3]], []], [1, "Buzzer", "Buzzer_12x9.5RM7.6", [["BZ1", 56]], []], [1, "E1-3056CUR1", "E1-3056-CUR-1-CT", [["DS1", 80]], []]], "F": [[1, "10uF", "CP_Tantalum_Case-A_EIA-3216-18_Reflow", [["C3", 59]], []], [8, "100nF", "C_0805", [["C2", 25], ["C9", 22], ["C11", 21], ["C12", 20], ["C15", 18], ["C16", 17], ["C19", 23], ["C20", 26]], []], [4, "10nF", "C_0805", [["C1", 27], ["C4", 24], ["C5", 28], ["C6", 14]], []], [1, "22nF", "C_0805", [["C13", 29]], []], [1, "1uF", "C_0805", [["C14", 19]], []], [1, "10uF", "C_0805", [["C17", 16]], []], [2, "4.7uF", "C_1206", [["C7", 83], ["C8", 84]], []], [1, "22uF", "C_1206", [["C10", 85]], []], [10, "1K", "R_0805", [["R3", 45], ["R5", 48], ["R6", 49], ["R22", 34], ["R31", 11], ["R32", 13], ["R33", 8], ["R34", 9], ["R35", 10], ["R36", 12]], []], [8, "120R", "R_0805", [["R8", 76], ["R9", 77], ["R10", 75], ["R16", 71], ["R17", 74], ["R18", 78], ["R19", 73], ["R20", 72]], []], [2, "220K", "R_0805", [["R7", 50], ["R21", 35]], []], [1, "100K", "R_0805", [["R12", 40]], []], [1, "9.3K", "R_0805", [["R13", 39]], []], [1, "1.9K", "R_0805", [["R14", 38]], []], [1, "180R", "R_0805", [["R28", 55]], []], [1, "2.2K", "R_0805", [["R30", 51]], []], [1, "1.2K", "R_2512", [["R29", 64]], []], [1, "FNR3012S330MT", "L_Taiyo-Yuden_MD-3030", [["L1", 87]], []], [1, "D", "D_SMA", [["D4", 60]], []], [1, "D_TVS", "D_SMA", [["D5", 61]], []], [1, "B140HW", "D_SOD-123F", [["D2", 86]], []], [1, "LED", "LED_0805", [["D9", 54]], []], [2, "BAV99", "SOT-23", [["D1", 95], ["D3", 81]], []], [1, "TLP291", "SO-4_4.4x2.3mm_Pitch1.27mm", [["U3", 63]], []], [1, "74HC595", "SOIC-16_3.9x9.9mm_Pitch1.27mm", [["U8", 79]], []], [1, "GS8331", "SOT-23-5", [["U2", 53]], []], [1, "RT9193-3.3", "SOT-23-5", [["U7", 88]], []], [1, "MP2451", "SOT-23-6", [["U6", 89]], []], [1, "STM32F030F4Px", "TSSOP-20_4.4x6.5mm_Pitch0.65mm", [["U1", 94]], []], [1, "Polyfuse", "Fuse_1206_3216Metric", [["F1", 62]], []], [2, "BLM18AG221SN1D", "L_0805", [["BL1", 30], ["BL2", 31]], []], [1, "BLM18AG221SN1D", "L_1206", [["BL3", 52]], []], [4, "MountingHole", "MountingHole_2.5mm", [["H1", 90], ["H2", 91], ["H3", 92], ["H4", 93]], []], [5, "10K", "R_0805", [["NTC1", 46], ["R1", 43], ["R2", 44], ["R4", 47], ["R15", 37]], []], [6, "BSS138", "SOT-23", [["Q1", 69], ["Q2", 65], ["Q3", 68], ["Q4", 70], ["Q5", 67], ["Q6", 66]], []], [1, "K Thermocouple", "TerminalBlock_bornier-2_P5.08mm", [["TC1", 82]], []], [1, "SWD", "Pin_Header_Straight_1x04_Pitch2.54mm", [["J4", 7]], []], [1, "PWR", "TerminalBlock_bornier-2_P5.08mm", [["J1", 96]], []], [1, "SSR", "TerminalBlock_bornier-2_P5.08mm", [["J3", 57]], []], [1, "Proximity", "TerminalBlock_bornier-3_P5.08mm", [["J2", 58]], []]]}, "silkscreen": {"B": [{"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "Abdullah.md.Jalloul@gmail.com", "thickness": 0.09999999999999999, "pos": [70.35799999999999, 87.884], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "3.3V", "thickness": 0.09999999999999999, "pos": [95.12299999999999, 79.883], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "DIO", "thickness": 0.09999999999999999, "pos": [95.12299999999999, 77.343], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "CLK", "thickness": 0.09999999999999999, "pos": [95.12299999999999, 74.803], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "GND", "thickness": 0.09999999999999999, "pos": [95.12299999999999, 72.26299999999999], "height": 0.7}, {"start": [27.177999999999997, 101.473], "end": [27.177999999999997, 104.01299999999999], "type": "segment", "width": 0.19999999999999998}, {"start": [36.576, 101.473], "end": [27.177999999999997, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [36.576, 104.01299999999999], "end": [36.576, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [37.592, 101.473], "end": [37.592, 104.01299999999999], "type": "segment", "width": 0.19999999999999998}, {"start": [51.943, 101.473], "end": [37.592, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [51.943, 104.14], "end": [51.943, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [52.832, 101.473], "end": [52.832, 104.14], "type": "segment", "width": 0.19999999999999998}, {"start": [62.102999999999994, 101.473], "end": [52.832, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [62.102999999999994, 104.14], "end": [62.102999999999994, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [72.136, 101.473], "end": [72.136, 104.01299999999999], "type": "segment", "width": 0.19999999999999998}, {"start": [62.992, 101.473], "end": [72.136, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [62.992, 104.14], "end": [62.992, 101.473], "type": "segment", "width": 0.19999999999999998}, {"start": [72.136, 107.823], "end": [69.469, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [72.136, 104.01299999999999], "end": [72.136, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [62.992, 107.823], "end": [65.65899999999999, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [62.992, 104.14], "end": [62.992, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [54.102, 107.823], "end": [54.864, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [62.102999999999994, 107.823], "end": [59.943999999999996, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [62.102999999999994, 104.14], "end": [62.102999999999994, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [52.832, 107.823], "end": [54.102, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [52.832, 104.14], "end": [52.832, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [27.177999999999997, 107.823], "end": [27.939999999999998, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [27.177999999999997, 104.01299999999999], "end": [27.177999999999997, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [36.576, 107.823], "end": [36.068, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [36.576, 104.01299999999999], "end": [36.576, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [37.592, 107.823], "end": [38.861999999999995, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [37.592, 104.01299999999999], "end": [37.592, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [51.943, 107.823], "end": [50.546, 107.823], "type": "segment", "width": 0.19999999999999998}, {"start": [51.943, 104.14], "end": [51.943, 107.823], "type": "segment", "width": 0.19999999999999998}, {"width": 1.3, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "TC", "thickness": 0.19999999999999998, "pos": [67.564, 107.823], "height": 1.3}, {"width": 1.3, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "SSR", "thickness": 0.19999999999999998, "pos": [57.403999999999996, 107.823], "height": 1.3}, {"width": 1.3, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "Proximity", "thickness": 0.19999999999999998, "pos": [44.704, 107.823], "height": 1.3}, {"width": 1.3, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "IN 24V", "thickness": 0.19999999999999998, "pos": [32.004, 107.823], "height": 1.3}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "D8", "thickness": 0.09999999999999999, "pos": [82.86749999999999, 76.8985], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "ALARM", "thickness": 0.09999999999999999, "pos": [85.47099999999999, 69.977], "height": 0.7}, {"width": 0.12, "endangle": 328.89115156915045, "start": [85.5, 74.0], "radius": 2.9899999999999998, "startangle": 179.99115156915047, "type": "arc"}, {"width": 0.12, "endangle": 180.00884843084953, "start": [85.5, 74.0], "radius": 2.9899999999999998, "startangle": 31.108848430849534, "type": "arc"}, {"start": [85.5, 74.0], "radius": 2.5, "type": "circle", "width": 0.12}, {"start": [88.06, 72.455], "end": [88.06, 75.545], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "D7", "thickness": 0.09999999999999999, "pos": [31.877, 86.868], "height": 0.7}, {"width": 1.0, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "TIME", "thickness": 0.13, "pos": [34.4805, 80.137], "height": 1.0}, {"start": [31.939999999999998, 85.545], "end": [31.939999999999998, 82.455], "type": "segment", "width": 0.12}, {"start": [34.5, 84.0], "radius": 2.5, "type": "circle", "width": 0.12}, {"width": 0.12, "endangle": 360.0088484308495, "start": [34.5, 84.0], "radius": 2.9899999999999998, "startangle": 211.10884843084952, "type": "arc"}, {"width": 0.12, "endangle": 148.89115156915048, "start": [34.5, 84.0], "radius": 2.9899999999999998, "startangle": -0.008848430849525357, "type": "arc"}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "D6", "thickness": 0.09999999999999999, "pos": [31.877, 76.8985], "height": 0.7}, {"width": 1.0, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "\u00b0C", "thickness": 0.12, "pos": [34.4805, 70.0405], "height": 1.0}, {"width": 0.12, "endangle": 148.89115156915048, "start": [34.5, 74.0], "radius": 2.9899999999999998, "startangle": -0.008848430849525357, "type": "arc"}, {"width": 0.12, "endangle": 360.0088484308495, "start": [34.5, 74.0], "radius": 2.9899999999999998, "startangle": 211.10884843084952, "type": "arc"}, {"start": [34.5, 74.0], "radius": 2.5, "type": "circle", "width": 0.12}, {"start": [31.939999999999998, 75.545], "end": [31.939999999999998, 72.455], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "SW4", "thickness": 0.09999999999999999, "pos": [85.5, 95.0595], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "ON/OFF", "thickness": 0.09999999999999999, "pos": [85.5, 99.359], "height": 0.7}, {"start": [82.27, 91.77], "end": [88.72999999999999, 91.77], "type": "segment", "width": 0.12}, {"start": [82.27, 96.3], "end": [82.27, 93.7], "type": "segment", "width": 0.12}, {"start": [82.27, 98.22999999999999], "end": [88.72999999999999, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [88.72999999999999, 96.3], "end": [88.72999999999999, 93.7], "type": "segment", "width": 0.12}, {"start": [82.27, 98.19999999999999], "end": [82.27, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [82.27, 91.77], "end": [82.27, 91.8], "type": "segment", "width": 0.12}, {"start": [88.72999999999999, 91.77], "end": [88.72999999999999, 91.8], "type": "segment", "width": 0.12}, {"start": [88.72999999999999, 98.22999999999999], "end": [88.72999999999999, 98.19999999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "SW3", "thickness": 0.09999999999999999, "pos": [68.58, 95.1865], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "SET", "thickness": 0.09999999999999999, "pos": [68.5, 99.359], "height": 0.7}, {"start": [71.72999999999999, 98.22999999999999], "end": [71.72999999999999, 98.19999999999999], "type": "segment", "width": 0.12}, {"start": [71.72999999999999, 91.77], "end": [71.72999999999999, 91.8], "type": "segment", "width": 0.12}, {"start": [65.27, 91.77], "end": [65.27, 91.8], "type": "segment", "width": 0.12}, {"start": [65.27, 98.19999999999999], "end": [65.27, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [71.72999999999999, 96.3], "end": [71.72999999999999, 93.7], "type": "segment", "width": 0.12}, {"start": [65.27, 98.22999999999999], "end": [71.72999999999999, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [65.27, 96.3], "end": [65.27, 93.7], "type": "segment", "width": 0.12}, {"start": [65.27, 91.77], "end": [71.72999999999999, 91.77], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "SW2", "thickness": 0.09999999999999999, "pos": [51.4985, 95.1865], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "DOWN", "thickness": 0.09999999999999999, "pos": [51.5, 99.359], "height": 0.7}, {"start": [48.269999999999996, 91.77], "end": [54.73, 91.77], "type": "segment", "width": 0.12}, {"start": [48.269999999999996, 96.3], "end": [48.269999999999996, 93.7], "type": "segment", "width": 0.12}, {"start": [48.269999999999996, 98.22999999999999], "end": [54.73, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [54.73, 96.3], "end": [54.73, 93.7], "type": "segment", "width": 0.12}, {"start": [48.269999999999996, 98.19999999999999], "end": [48.269999999999996, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [48.269999999999996, 91.77], "end": [48.269999999999996, 91.8], "type": "segment", "width": 0.12}, {"start": [54.73, 91.77], "end": [54.73, 91.8], "type": "segment", "width": 0.12}, {"start": [54.73, 98.22999999999999], "end": [54.73, 98.19999999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "SW1", "thickness": 0.09999999999999999, "pos": [34.4805, 95.0595], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "UP", "thickness": 0.09999999999999999, "pos": [34.5, 99.359], "height": 0.7}, {"start": [37.73, 98.22999999999999], "end": [37.73, 98.19999999999999], "type": "segment", "width": 0.12}, {"start": [37.73, 91.77], "end": [37.73, 91.8], "type": "segment", "width": 0.12}, {"start": [31.27, 91.77], "end": [31.27, 91.8], "type": "segment", "width": 0.12}, {"start": [31.27, 98.19999999999999], "end": [31.27, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [37.73, 96.3], "end": [37.73, 93.7], "type": "segment", "width": 0.12}, {"start": [31.27, 98.22999999999999], "end": [37.73, 98.22999999999999], "type": "segment", "width": 0.12}, {"start": [31.27, 96.3], "end": [31.27, 93.7], "type": "segment", "width": 0.12}, {"start": [31.27, 91.77], "end": [37.73, 91.77], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "C18", "thickness": 0.09999999999999999, "pos": [93.448, 93.726], "height": 0.7}, {"start": [92.798, 93.226], "end": [92.798, 94.226], "type": "segment", "width": 0.12}, {"start": [91.098, 94.226], "end": [91.098, 93.226], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "R24", "thickness": 0.09999999999999999, "pos": [43.561, 91.06], "height": 0.7}, {"start": [42.961, 93.58999999999999], "end": [44.161, 93.58999999999999], "type": "segment", "width": 0.12}, {"start": [44.161, 91.83], "end": [42.961, 91.83], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "R23", "thickness": 0.09999999999999999, "pos": [59.943999999999996, 91.06], "height": 0.7}, {"start": [60.544, 91.83], "end": [59.343999999999994, 91.83], "type": "segment", "width": 0.12}, {"start": [59.343999999999994, 93.58999999999999], "end": [60.544, 93.58999999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "R11", "thickness": 0.09999999999999999, "pos": [90.99549999999999, 74.92999999999999], "height": 0.7}, {"start": [90.288, 75.53], "end": [90.288, 74.33], "type": "segment", "width": 0.12}, {"start": [88.52799999999999, 74.33], "end": [88.52799999999999, 75.53], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "R25", "thickness": 0.09999999999999999, "pos": [77.089, 91.06], "height": 0.7}, {"start": [76.48899999999999, 93.58999999999999], "end": [77.689, 93.58999999999999], "type": "segment", "width": 0.12}, {"start": [77.689, 91.83], "end": [76.48899999999999, 91.83], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "R27", "thickness": 0.09999999999999999, "pos": [77.089, 96.392], "height": 0.7}, {"start": [76.48899999999999, 95.622], "end": [77.689, 95.622], "type": "segment", "width": 0.12}, {"start": [77.689, 93.862], "end": [76.48899999999999, 93.862], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "BZ1", "thickness": 0.09999999999999999, "pos": [85.598, 84.0105], "height": 0.7}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "+", "thickness": 0.09999999999999999, "pos": [81.7145, 86.53999999999999], "height": 0.7}, {"start": [85.52449999999999, 84.0], "radius": 6.1, "type": "circle", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": ["mirrored"], "horiz_justify": 0, "text": "DS1", "thickness": 0.09999999999999999, "pos": [77.145, 70.74499999999999], "height": 0.7}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-16.001424, -0.13166999999999998], [-15.858569999999999, -0.238731], [-15.666841, -0.43906], [-15.626959999999999, -0.483269], [-15.408847, -0.749489], [-15.304426, -0.942245], [-15.295237, -1.066409], [-15.314793, -1.1844999999999999], [-15.352782, -1.441101], [-15.406417, -1.81639], [-15.472913, -2.2905439999999997], [-15.549482999999999, -2.843741], [-15.633339999999999, -3.456159], [-15.695475, -3.913836], [-15.80147, -4.699832], [-15.888221, -5.342083], [-15.958991, -5.854998999999999], [-16.017042, -6.25299], [-16.065634, -6.550466], [-16.10803, -6.761837], [-16.147492, -6.901514], [-16.187282, -6.983905], [-16.23066, -7.023422999999999], [-16.28089, -7.034475], [-16.341233, -7.031473], [-16.400527999999998, -7.028632], [-16.647228, -6.985301], [-16.895374999999998, -6.880923], [-16.904042, -6.8757269999999995], [-17.197543, -6.642199], [-17.358203, -6.361693], [-17.393432, -6.106481], [-17.240562, -6.106481], [-17.226367, -6.257909], [-17.198463999999998, -6.3697989999999995], [-17.167154999999998, -6.440713], [-16.957914, -6.679626], [-16.662361, -6.832], [-16.454088, -6.865908], [-16.254402, -6.8690299999999995], [-15.845084, -3.8950039999999997], [-15.435766, -0.920979], [-15.714926, -0.5802999999999999], [-15.909087999999999, -0.369422], [-16.073394, -0.26625899999999997], [-16.251175, -0.239622], [-16.508264, -0.239622], [-16.851229999999997, -2.695754], [-16.967952999999998, -3.5385009999999997], [-17.062226, -4.238073], [-17.135299, -4.809273999999999], [-17.18842, -5.26691], [-17.222838, -5.625786], [-17.239803, -5.900708], [-17.240562, -6.106481], [-17.393432, -6.106481], [-17.409271, -5.991739], [-17.409288999999998, -5.952825], [-17.39755, -5.778458], [-17.365736, -5.467766], [-17.316516999999997, -5.042545], [-17.252561, -4.52459], [-17.176539, -3.935697], [-17.09112, -3.297663], [-17.027452999999998, -2.835534], [-16.648906999999998, -0.119811], [-16.32292, -0.095789], [-16.141007, -0.092486], [-16.001424, -0.13166999999999998]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-12.639085, -5.4331059999999995], [-12.092269, -5.438492], [-11.677479, -5.448214], [-11.38087, -5.46288], [-11.188595999999999, -5.483099], [-11.08681, -5.509481], [-11.062204999999999, -5.531289], [-11.057089, -5.6520209999999995], [-11.074104, -5.88706], [-11.109696, -6.1930439999999995], [-11.126057, -6.310061999999999], [-11.225207, -6.988993], [-13.514685, -7.010178], [-14.102926, -7.01356], [-14.637569, -7.012684999999999], [-15.098246, -7.007902], [-15.464589, -6.999561], [-15.716228999999998, -6.988013], [-15.832799, -6.9736069999999994], [-15.838216999999998, -6.970241], [-15.845702999999999, -6.860491], [-15.838325, -6.76329], [-15.711675999999999, -6.76329], [-15.698184999999999, -6.795395999999999], [-15.620056, -6.820589999999999], [-15.462036999999999, -6.839623], [-15.208874, -6.853242], [-14.845314, -6.8621989999999995], [-14.356103, -6.867241], [-13.725987, -6.8691189999999995], [-13.556294, -6.8691819999999995], [-11.360275999999999, -6.8691819999999995], [-11.307238, -6.4897789999999995], [-11.264418, -6.196778999999999], [-11.22134, -5.921944], [-11.209406, -5.850785999999999], [-11.164610999999999, -5.591195], [-15.556861, -5.591195], [-15.613951, -6.124295999999999], [-15.648995999999999, -6.41261], [-15.684697, -6.644259], [-15.711675999999999, -6.76329], [-15.838325, -6.76329], [-15.829013999999999, -6.640641], [-15.794875999999999, -6.35732], [-15.750013999999998, -6.057157999999999], [-15.701155, -5.786785999999999], [-15.655024, -5.592834], [-15.630662999999998, -5.531289], [-15.571145999999999, -5.500134], [-15.428332999999999, -5.475616], [-15.188509, -5.45714], [-14.837959999999999, -5.4441109999999995], [-14.362969999999999, -5.435931999999999], [-13.749823999999998, -5.432007], [-13.331773, -5.431445999999999], [-12.639085, -5.4331059999999995]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-8.711188, -0.09623], [-8.601861999999999, -0.136063], [-8.598310999999999, -0.140602], [-8.598828, -0.234008], [-8.620569999999999, -0.464464], [-8.660584, -0.8111109999999999], [-8.715913, -1.25309], [-8.783604, -1.7695429999999999], [-8.860702, -2.339612], [-8.944251, -2.9424379999999997], [-9.031298, -3.5571629999999996], [-9.118886999999999, -4.162928], [-9.204063999999999, -4.738875], [-9.283873999999999, -5.264145], [-9.355362, -5.717880999999999], [-9.415573, -6.079222], [-9.461553, -6.327312], [-9.490348, -6.441292], [-9.491037, -6.4426499999999995], [-9.723343, -6.745856], [-10.040885, -6.931635], [-10.464616, -7.013544], [-10.729381, -7.028900999999999], [-10.872389, -7.0179979999999995], [-10.931004, -6.968738999999999], [-10.942587, -6.8690299999999995], [-10.942601, -6.858814], [-10.931815, -6.7379549999999995], [-10.930807999999999, -6.729401999999999], [-10.780581999999999, -6.729401999999999], [-10.715308, -6.827770999999999], [-10.546221, -6.873686999999999], [-10.319955, -6.868402], [-10.083147, -6.813168999999999], [-9.882432999999999, -6.709239999999999], [-9.877158999999999, -6.705147999999999], [-9.713485, -6.514537], [-9.593801, -6.269629], [-9.586705, -6.245871999999999], [-9.556574999999999, -6.097148], [-9.508799999999999, -5.8110539999999995], [-9.44651, -5.408613], [-9.372836, -4.910845999999999], [-9.29091, -4.338775], [-9.203863, -3.7134229999999997], [-9.144200999999999, -3.274842], [-9.057119, -2.6320609999999998], [-8.975230999999999, -2.034105], [-8.901328, -1.500877], [-8.838205, -1.052278], [-8.788654, -0.708209], [-8.755468, -0.488573], [-8.743431, -0.41933899999999996], [-8.73687, -0.2938], [-8.822384999999999, -0.24572899999999998], [-8.950327999999999, -0.239622], [-9.133913999999999, -0.274806], [-9.337534, -0.394984], [-9.598355999999999, -0.622097], [-9.59848, -0.622215], [-9.999547999999999, -1.004807], [-10.388846, -3.797215], [-10.479579, -4.451404], [-10.562953, -5.059023], [-10.636426, -5.601039999999999], [-10.697455, -6.058425], [-10.743497999999999, -6.412147999999999], [-10.772013, -6.643178], [-10.780581999999999, -6.729401999999999], [-10.930807999999999, -6.729401999999999], [-10.901201, -6.478072999999999], [-10.853259999999999, -6.098325], [-10.790493999999999, -5.617869], [-10.715403, -5.055861], [-10.630488999999999, -4.431458999999999], [-10.54323, -3.799601], [-10.451896999999999, -3.142505], [-10.367911999999999, -2.5373289999999997], [-10.293728, -2.00181], [-10.231796, -1.553685], [-10.184567, -1.210691], [-10.154492999999999, -0.990566], [-10.144025, -0.9110729999999999], [-10.087361, -0.855024], [-9.936914999999999, -0.722783], [-9.722005, -0.539974], [-9.657795, -0.486158], [-9.367528, -0.259849], [-9.147382, -0.13194], [-8.960232999999999, -0.08242999999999999], [-8.903704, -0.079874], [-8.711188, -0.09623]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-7.617699999999999, -5.4104719999999995], [-7.397638, -5.5637669999999995], [-7.178877, -5.872545], [-7.118071, -6.1974149999999995], [-7.215440999999999, -6.529179], [-7.369091, -6.750518], [-7.594473, -6.912484999999999], [-7.889075, -6.999365], [-8.183874, -6.997738999999999], [-8.346855, -6.940613], [-8.622515, -6.703221], [-8.762929, -6.3834219999999995], [-8.783679, -6.171366], [-8.663044, -6.171366], [-8.648071999999999, -6.338973999999999], [-8.530106, -6.581716999999999], [-8.311072, -6.761285], [-8.039674999999999, -6.858148], [-7.764619, -6.8527759999999995], [-7.581128, -6.766799], [-7.366521, -6.514565999999999], [-7.279934, -6.212075], [-7.327881, -5.90389], [-7.429275, -5.72791], [-7.667357999999999, -5.528918], [-7.935597, -5.4607149999999995], [-8.20164, -5.507079], [-8.433131, -5.65179], [-8.597717, -5.878626], [-8.663044, -6.171366], [-8.783679, -6.171366], [-8.784386999999999, -6.1641379999999995], [-8.757681, -5.895924], [-8.650698, -5.6929739999999995], [-8.552685, -5.58505], [-8.264284, -5.395981], [-7.937500999999999, -5.33751], [-7.617699999999999, -5.4104719999999995]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-3.771528, -0.10117], [-3.60748, -0.183556], [-3.4143999999999997, -0.354782], [-3.313952, -0.45927599999999996], [-3.13055, -0.6728149999999999], [-3.003571, -0.8552099999999999], [-2.962268, -0.95849], [-2.973994, -1.0624959999999999], [-3.005547, -1.306414], [-3.054443, -1.671973], [-3.1181959999999997, -2.140901], [-3.194321, -2.694927], [-3.280334, -3.315781], [-3.373748, -3.9851919999999996], [-3.380535, -4.033647], [-3.794587, -6.988993], [-4.073866, -7.010758], [-4.400588, -6.968713999999999], [-4.608858, -6.874511], [-4.88312, -6.62601], [-5.061134, -6.302944999999999], [-5.111949, -6.019076], [-5.108669, -5.973203], [-4.931177, -5.973203], [-4.922594, -6.159186999999999], [-4.895519999999999, -6.296246], [-4.85044, -6.399997], [-4.7878419999999995, -6.4860549999999995], [-4.708214, -6.570037], [-4.680629, -6.5976099999999995], [-4.41441, -6.804964999999999], [-4.173779, -6.8691819999999995], [-3.9385019999999997, -6.8691819999999995], [-3.5245499999999996, -3.9093549999999997], [-3.418183, -3.147589], [-3.3326629999999997, -2.528003], [-3.266673, -2.034573], [-3.218899, -1.651278], [-3.188026, -1.3620919999999999], [-3.172739, -1.1509939999999999], [-3.171722, -1.001958], [-3.183661, -0.898963], [-3.207241, -0.8259829999999999], [-3.241145, -0.7669969999999999], [-3.2639739999999997, -0.734355], [-3.506729, -0.441892], [-3.7283969999999997, -0.28656899999999996], [-3.952664, -0.25218], [-3.966678, -0.253604], [-4.193396, -0.279559], [-4.567092, -2.955345], [-4.6796809999999995, -3.762826], [-4.770858, -4.427684], [-4.841108999999999, -4.965533], [-4.890922, -5.391992], [-4.920782, -5.722676], [-4.931177, -5.973203], [-5.108669, -5.973203], [-5.101018, -5.866222], [-5.070323999999999, -5.583113], [-5.023014, -5.192354], [-4.962238, -4.716551], [-4.891144, -4.1783079999999995], [-4.81288, -3.600231], [-4.730594, -3.004925], [-4.647435, -2.414996], [-4.566551, -1.8530479999999998], [-4.49109, -1.3416869999999999], [-4.424201, -0.9035179999999999], [-4.369033, -0.5611459999999999], [-4.328732, -0.337177], [-4.309798, -0.25959099999999996], [-4.214338, -0.130264], [-4.037484, -0.08242999999999999], [-3.953305, -0.079874], [-3.771528, -0.10117]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[0.547245, -5.446752], [0.8389789999999999, -5.455363999999999], [1.03833, -5.470034], [1.1621299999999999, -5.491467999999999], [1.227212, -5.520377], [1.247438, -5.546918], [1.256147, -5.676792], [1.239484, -5.918419999999999], [1.201049, -6.226459999999999], [1.185504, -6.326938999999999], [1.0783019999999999, -6.988993], [-1.228524, -7.010204], [-3.535351, -7.031414], [-3.5193659999999998, -6.8691819999999995], [-3.3733269999999997, -6.8691819999999995], [0.9411729999999999, -6.8691819999999995], [0.983849, -6.689464999999999], [1.017054, -6.510749], [1.0567389999999999, -6.243714], [1.081585, -6.050471], [1.136646, -5.591195], [-1.020615, -5.591195], [-1.689431, -5.592676], [-2.2140839999999997, -5.597619], [-2.610136, -5.606774], [-2.89315, -5.620890999999999], [-3.078689, -5.640719], [-3.182315, -5.667008], [-3.218512, -5.697087], [-3.2474629999999998, -5.827223], [-3.283349, -6.063662], [-3.3162369999999997, -6.33608], [-3.3733269999999997, -6.8691819999999995], [-3.5193659999999998, -6.8691819999999995], [-3.481343, -6.483315999999999], [-3.444279, -6.1651739999999995], [-3.401156, -5.878762], [-3.365342, -5.7033], [-3.303349, -5.471382999999999], [-1.05059, -5.4501669999999995], [-0.380706, -5.444862], [0.14629399999999998, -5.443487], [0.547245, -5.446752]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[3.59155, -0.09919399999999999], [3.705111, -0.146218], [3.708933, -0.151305], [3.708083, -0.243784], [3.686772, -0.476877], [3.647132, -0.8330529999999999], [3.5912979999999997, -1.2947849999999999], [3.521403, -1.844542], [3.43958, -2.464795], [3.347962, -3.138016], [3.326936, -3.289825], [3.212424, -4.109627], [3.115318, -4.786125], [3.0316009999999998, -5.334321], [2.957254, -5.769216], [2.8882619999999997, -6.105811], [2.8206059999999997, -6.359108], [2.7502679999999997, -6.544108], [2.673232, -6.675813], [2.585479, -6.7692239999999995], [2.482993, -6.8393429999999995], [2.3617559999999997, -6.901171], [2.359509, -6.902238], [2.1349009999999997, -6.977373999999999], [1.8764669999999999, -7.019470999999999], [1.630258, -7.0273829999999995], [1.442324, -6.999962999999999], [1.358714, -6.936064999999999], [1.357862, -6.927162999999999], [1.3680679999999998, -6.831922], [1.51761, -6.831922], [1.585801, -6.875804], [1.756614, -6.881391], [1.979407, -6.855442], [2.203542, -6.804723], [2.378377, -6.735993], [2.41458, -6.712141], [2.5907679999999997, -6.523124], [2.701524, -6.332738], [2.732957, -6.202103], [2.7820869999999998, -5.933402], [2.8457399999999997, -5.546952], [2.9207419999999997, -5.063066], [3.003919, -4.502059], [3.092097, -3.884245], [3.154315, -3.4345909999999997], [3.243017, -2.7874719999999997], [3.3267029999999997, -2.181266], [3.4024739999999998, -1.6366319999999999], [3.467435, -1.174226], [3.518688, -0.8147059999999999], [3.553336, -0.5787289999999999], [3.565963, -0.49921299999999996], [3.585366, -0.32234599999999997], [3.5331509999999997, -0.252287], [3.383575, -0.240503], [3.1798889999999997, -0.293856], [2.923712, -0.460947], [2.737107, -0.619906], [2.319182, -0.998427], [1.918396, -3.896544], [1.8270659999999999, -4.557939999999999], [1.7430439999999998, -5.16831], [1.66876, -5.709852], [1.606644, -6.164763], [1.5591279999999998, -6.515241], [1.528641, -6.743484], [1.5176159999999999, -6.831689], [1.51761, -6.831922], [1.3680679999999998, -6.831922], [1.368596, -6.827001999999999], [1.399133, -6.587126], [1.446982, -6.2260029999999995], [1.509647, -5.762104], [1.5846339999999999, -5.213896], [1.6694499999999999, -4.59985], [1.7572329999999998, -3.969652], [1.849087, -3.310221], [1.9334939999999998, -2.699194], [2.007962, -2.155007], [2.069998, -1.696094], [2.11711, -1.34089], [2.146804, -1.1078299999999999], [2.156609, -1.01623], [2.213515, -0.921419], [2.364548, -0.756856], [2.5801879999999997, -0.553939], [2.642684, -0.49921299999999996], [2.925779, -0.27000399999999997], [3.139049, -0.138686], [3.319705, -0.084565], [3.396769, -0.079874], [3.59155, -0.09919399999999999]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[4.6561129999999995, -5.387853], [4.894284, -5.510689999999999], [5.066873, -5.741073999999999], [5.071186, -5.749344], [5.184685, -6.108788], [5.141499, -6.441523], [4.97217, -6.710947], [4.700685, -6.912275999999999], [4.378355, -7.0033449999999995], [4.063226, -6.969240999999999], [4.024712, -6.9543669999999995], [3.765333, -6.764251], [3.5840899999999998, -6.474658], [3.532694, -6.227162], [3.672812, -6.227162], [3.738378, -6.498768999999999], [3.9086629999999998, -6.717302], [4.1707, -6.847709999999999], [4.353145, -6.8691819999999995], [4.657881, -6.8040009999999995], [4.836021, -6.673127], [5.005514, -6.403807], [5.030978999999999, -6.1028899999999995], [4.913705, -5.805127], [4.798597, -5.664924999999999], [4.533195, -5.475458], [4.27165, -5.4454579999999995], [4.008357, -5.574927], [3.9076929999999996, -5.664924999999999], [3.724928, -5.937531], [3.672812, -6.227162], [3.532694, -6.227162], [3.5144889999999998, -6.139498], [3.5144659999999996, -6.133398], [3.5855919999999997, -5.796868], [3.7810699999999997, -5.538201], [4.074052, -5.383705], [4.312315, -5.351572], [4.6561129999999995, -5.387853]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[8.565493, -0.09451], [8.711352999999999, -0.15771], [8.867808, -0.298409], [9.030892999999999, -0.485344], [9.370372, -0.8908149999999999], [8.956196, -3.8912829999999996], [8.862181, -4.56628], [8.773436, -5.191818], [8.692603, -5.750157], [8.622319, -6.223558], [8.565223999999999, -6.594282], [8.523956, -6.844589999999999], [8.501154999999999, -6.956741999999999], [8.49963, -6.960341], [8.377411, -7.021687], [8.16389, -7.017417999999999], [7.910849, -6.952961999999999], [7.750585999999999, -6.881831999999999], [7.530869, -6.7101999999999995], [7.344919999999999, -6.478134], [7.321771, -6.436954], [7.197324999999999, -6.197151], [7.3856839999999995, -6.197151], [7.387415, -6.214903], [7.50974, -6.46333], [7.718439999999999, -6.6843319999999995], [7.962134, -6.832705], [8.131041999999999, -6.8691819999999995], [8.309035, -6.840567], [8.391207, -6.723979], [8.408966, -6.649528], [8.429568, -6.520499], [8.469076, -6.253061], [8.524666, -5.867068], [8.593516, -5.3823739999999995], [8.672801999999999, -4.818834], [8.759701, -4.1963029999999995], [8.833898, -3.661234], [9.216688, -0.892594], [8.941519999999999, -0.572869], [8.729555999999999, -0.361516], [8.539800999999999, -0.26343099999999997], [8.413108, -0.246383], [8.22894, -0.26428599999999997], [8.142221, -0.35923499999999997], [8.114951, -0.45927599999999996], [8.072137999999999, -0.698491], [8.016805999999999, -1.052915], [7.951766999999999, -1.500317], [7.879829999999999, -2.018466], [7.803805, -2.585129], [7.726503999999999, -3.178076], [7.650735, -3.775073], [7.579308999999999, -4.35389], [7.5150369999999995, -4.892294], [7.460728, -5.368054], [7.419193, -5.758938], [7.393241, -6.042714], [7.3856839999999995, -6.197151], [7.197324999999999, -6.197151], [7.167237, -6.139174], [7.575578999999999, -3.184603], [7.669117, -2.5145709999999997], [7.757573, -1.893808], [7.8382559999999994, -1.3402509999999999], [7.908473, -0.871837], [7.965532, -0.5065029999999999], [8.006739, -0.262185], [8.029404, -0.15682], [8.030322, -0.15495299999999998], [8.133232999999999, -0.106518], [8.329756999999999, -0.081025], [8.384069, -0.079874], [8.565493, -0.09451]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[12.719565, -5.4451089999999995], [13.090876, -5.449888], [13.347572999999999, -5.457399], [13.466032, -5.467248], [13.544559, -5.493328], [13.587636999999999, -5.545789999999999], [13.597961, -5.657039], [13.578225, -5.859482], [13.531123, -6.185524], [13.527662999999999, -6.208544], [13.480378, -6.528149], [13.443657, -6.786099999999999], [13.423084, -6.942746], [13.420593, -6.969024999999999], [13.343574, -6.984259], [13.126659, -6.9980649999999995], [12.789696999999999, -7.009932999999999], [12.352538, -7.019349999999999], [11.835030999999999, -7.025805], [11.257026, -7.0287869999999995], [11.096159, -7.02893], [8.773449, -7.02893], [8.790277, -6.871783], [8.927384, -6.871783], [13.29777, -6.829244999999999], [13.468988, -5.591195], [9.123439, -5.591195], [9.078645, -5.850785999999999], [9.039199, -6.0951189999999995], [8.994463999999999, -6.393775], [8.980616999999999, -6.491079999999999], [8.927384, -6.871783], [8.790277, -6.871783], [8.828187999999999, -6.517784], [8.866489999999999, -6.198926999999999], [8.908947, -5.9028529999999995], [8.937629, -5.7390099999999995], [8.992331, -5.471382999999999], [11.145693999999999, -5.448955], [11.724198999999999, -5.444463], [12.256414, -5.443239999999999], [12.719565, -5.4451089999999995]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[15.952668, -0.09494699999999999], [16.040499999999998, -0.154139], [16.054717, -0.235181], [16.044052999999998, -0.351664], [16.013903, -0.6050599999999999], [15.967030999999999, -0.97409], [15.906201999999999, -1.4374749999999998], [15.83418, -1.973936], [15.753731, -2.5621959999999997], [15.731757, -2.72113], [15.651402, -3.31247], [15.581204999999999, -3.8514579999999996], [15.523525, -4.318118], [15.480720999999999, -4.692473], [15.455150999999999, -4.954547], [15.449174999999999, -5.084362], [15.451504, -5.09448], [15.450228, -5.184682], [15.425917, -5.224411], [15.380384999999999, -5.347008], [15.333758, -5.573087999999999], [15.305292, -5.777791], [15.216921, -6.240901999999999], [15.062686, -6.579927], [14.829035, -6.821720999999999], [14.752884, -6.872415999999999], [14.552975, -6.954362], [14.295855, -7.009545999999999], [14.034312, -7.033147], [13.821138, -7.020341999999999], [13.709937, -6.9676789999999995], [13.712019999999999, -6.877356], [13.719412, -6.800967], [13.845004, -6.800967], [13.906336, -6.853376], [14.076576999999999, -6.868589999999999], [14.165379999999999, -6.8691819999999995], [14.538929999999999, -6.808174999999999], [14.726526, -6.703239], [14.897098, -6.545636999999999], [15.01122, -6.399528], [15.011299999999999, -6.399376999999999], [15.034123999999998, -6.300559], [15.075607999999999, -6.0649429999999995], [15.132631, -5.7139869999999995], [15.202067999999999, -5.269149], [15.280795999999999, -4.751888], [15.365692, -4.183661], [15.453633, -3.585927], [15.541495, -2.980143], [15.626154, -2.387769], [15.704488, -1.8302619999999998], [15.773373999999999, -1.32908], [15.829687, -0.905681], [15.870303999999999, -0.5815239999999999], [15.892102999999999, -0.37806599999999996], [15.894969, -0.328341], [15.826194, -0.265094], [15.675315, -0.24308], [15.452449, -0.313828], [15.160115999999999, -0.521876], [15.046161, -0.622483], [14.636661, -0.998427], [14.265459, -3.754088], [14.177161, -4.406384], [14.094106, -5.013891], [14.019029999999999, -5.557048], [13.95467, -6.016292], [13.903763999999999, -6.372062], [13.869048999999999, -6.604794999999999], [13.854726, -6.689464999999999], [13.845004, -6.800967], [13.719412, -6.800967], [13.734354999999999, -6.646577], [13.774761, -6.293051999999999], [13.831057999999999, -5.834489], [13.901064, -5.288599], [13.982598, -4.67309], [14.07348, -4.005672], [14.085054, -3.921893], [14.498026, -0.93736], [14.969806, -0.508617], [15.228546999999999, -0.284537], [15.419915, -0.15381699999999998], [15.585868, -0.093343], [15.748151, -0.079874], [15.952668, -0.09494699999999999]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[16.913221999999998, -5.380675], [17.207527, -5.53782], [17.258975, -5.58505], [17.44897, -5.868029], [17.505872, -6.172181], [17.448192, -6.468476], [17.294444, -6.727879], [17.063142, -6.92136], [16.772797999999998, -7.019886], [16.441926, -6.994425], [16.374214, -6.9725209999999995], [16.112802, -6.800699], [15.921432999999999, -6.530939999999999], [15.826737999999999, -6.216454], [15.829801999999999, -6.178584], [15.981202999999999, -6.178584], [16.059687, -6.4794599999999996], [16.067764, -6.49503], [16.275102, -6.741162999999999], [16.543907, -6.862439999999999], [16.833804999999998, -6.852137], [17.104422, -6.703525], [17.13665, -6.673127], [17.303038, -6.405895999999999], [17.332705, -6.200413999999999], [17.309055, -5.902118], [17.220827, -5.707983], [17.042106, -5.567169], [16.997699, -5.5432369999999995], [16.696892, -5.461963], [16.417735, -5.512601999999999], [16.187331, -5.667413], [16.032785999999998, -5.898654], [15.981202999999999, -6.178584], [15.829801999999999, -6.178584], [15.850266, -5.925707], [16.017538, -5.633074], [16.277563999999998, -5.438136], [16.589679, -5.350725], [16.913221999999998, -5.380675]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[10.223899999999999, -3.8738989999999998], [10.183963, -3.913836], [10.144025, -3.8738989999999998], [10.183963, -3.8339619999999996], [10.223899999999999, -3.8738989999999998]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-9.825087, 0.479913], [-9.657905, 0.266082], [-9.547497, 0.09722599999999999], [-9.518120999999999, 0.013703], [-9.587686999999999, -0.069477], [-9.745027, -0.22403399999999998], [-9.956748, -0.417234], [-9.966973999999999, -0.426272], [-10.38898, -0.798742], [-12.723042999999999, -0.798742], [-13.418082, -0.79748], [-13.969275, -0.7932079999999999], [-14.39251, -0.785198], [-14.703672, -0.77272], [-14.91865, -0.755045], [-15.053327999999999, -0.731445], [-15.123595, -0.70119], [-15.136572, -0.687994], [-15.232501999999998, -0.560661], [-15.382416, -0.367793], [-15.454082999999999, -0.27693999999999996], [-15.676898999999999, 0.004155], [-15.506464, 0.004155], [-14.989616, -0.6389929999999999], [-12.7066, -0.63735], [-10.423585, -0.6357079999999999], [-10.031246, -0.292465], [-9.638907999999999, 0.050778], [-10.242488, 0.718868], [-14.736792, 0.712526], [-15.121628, 0.35834], [-15.506464, 0.004155], [-15.676898999999999, 0.004155], [-15.692127999999999, 0.023365999999999998], [-14.736792, 0.878328], [-12.447846, 0.878473], [-10.1589, 0.878617], [-9.825087, 0.479913]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[2.469313, 0.507937], [2.641562, 0.298091], [2.7598059999999998, 0.126959], [2.795598, 0.043926], [2.738915, -0.050986], [2.5897319999999997, -0.21311], [2.379345, -0.408695], [2.361621, -0.424074], [1.9276449999999998, -0.798742], [-2.700847, -0.798742], [-3.0277819999999998, -0.408254], [-3.196761, -0.200354], [-3.314864, -0.043449999999999996], [-3.3302449999999997, -0.017363], [-3.197815, -0.017363], [-2.936801, -0.321417], [-2.675786, -0.625471], [1.9015259999999998, -0.6389929999999999], [2.2841389999999997, -0.292591], [2.666752, 0.05381], [2.391709, 0.38489999999999996], [2.116667, 0.715989], [-0.131141, 0.717429], [-2.378949, 0.718868], [-2.788382, 0.350753], [-3.197815, -0.017363], [-3.3302449999999997, -0.017363], [-3.354717, 0.024141], [-3.2977689999999997, 0.091345], [-3.146626, 0.232341], [-2.9308359999999998, 0.41989], [-2.868487, 0.472333], [-2.382257, 0.878617], [2.1430279999999997, 0.878617], [2.469313, 0.507937]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[12.157427, 0.877394], [12.744591999999999, 0.8750749999999999], [13.280603999999999, 0.869134], [13.744404, 0.8601099999999999], [14.114927999999999, 0.848541], [14.371113999999999, 0.834969], [14.491902, 0.819931], [14.497169999999999, 0.817488], [14.590563, 0.728893], [14.749331999999999, 0.560574], [14.890514999999999, 0.403678], [15.203985, 0.048549999999999996], [14.730766, -0.374951], [14.257546999999999, -0.798453], [11.933729999999999, -0.798597], [9.609912, -0.798742], [9.284704, -0.413064], [9.124022, -0.202629], [9.026662, -0.035325999999999996], [9.021377, -0.004658], [9.185535, -0.004658], [9.234217, -0.101436], [9.35754, -0.26686], [9.433432, -0.35665399999999997], [9.681329, -0.6389929999999999], [14.232287, -0.6389929999999999], [14.61301, -0.29952799999999996], [14.993732999999999, 0.039938], [14.437989, 0.718868], [9.96651, 0.718868], [9.576022, 0.391934], [9.373719, 0.212411], [9.2326, 0.0678], [9.185535, -0.004658], [9.021377, -0.004658], [9.01261, 0.046213], [9.095049, 0.133971], [9.260921999999999, 0.294295], [9.474824, 0.49299299999999996], [9.481641, 0.499214], [9.897559, 0.878617], [12.157427, 0.877394]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-14.319476, 7.080526], [-14.254639, 7.00962], [-14.250712, 6.999985], [-14.249920999999999, 6.893377999999999], [-14.26962, 6.6470519999999995], [-14.307678999999998, 6.279427], [-14.361969, 5.808922], [-14.430361, 5.253957], [-14.510726, 4.632953], [-14.600935, 3.96433], [-14.605129, 3.933871], [-15.009689, 0.998428], [-15.465259999999999, 0.579089], [-15.719978, 0.35657], [-15.909543999999999, 0.22833699999999998], [-16.076604, 0.17077699999999998], [-16.222682, 0.159749], [-16.426745, 0.174118], [-16.549751, 0.209663], [-16.559873, 0.219655], [-16.562635, 0.320699], [-16.557147, 0.38603499999999996], [-16.400204, 0.38603499999999996], [-16.322231, 0.32908699999999996], [-16.180663, 0.323077], [-15.960797, 0.376948], [-15.701531, 0.543264], [-15.554184999999999, 0.6680229999999999], [-15.173464, 1.009391], [-14.775682999999999, 3.839444], [-14.683644, 4.498006999999999], [-14.599117, 5.110049], [-14.52463, 5.656689], [-14.462715, 6.119046], [-14.415903, 6.478236], [-14.386724, 6.715376999999999], [-14.377628999999999, 6.809277], [-14.413018, 6.902343], [-14.54459, 6.943003999999999], [-14.698027999999999, 6.949057], [-14.951398999999999, 6.917274], [-15.169497999999999, 6.799841], [-15.299277, 6.6894659999999995], [-15.579856999999999, 6.429875], [-15.974060999999999, 3.59434], [-16.06627, 2.93079], [-16.152445, 2.31011], [-16.229876, 1.751866], [-16.295853, 1.275622], [-16.347663999999998, 0.9009429999999999], [-16.382599, 0.6473949999999999], [-16.397343, 0.5391509999999999], [-16.400204, 0.38603499999999996], [-16.557147, 0.38603499999999996], [-16.542656, 0.558515], [-16.503021999999998, 0.912223], [-16.446818999999998, 1.360949], [-16.377133, 1.883816], [-16.29705, 2.459947], [-16.209656, 3.068466], [-16.118036999999998, 3.6884949999999996], [-16.02528, 4.2991589999999995], [-15.934469, 4.879581], [-15.848692, 5.408885], [-15.771033999999998, 5.866194], [-15.704581, 6.230631], [-15.65242, 6.481319], [-15.617636, 6.597383], [-15.616931999999998, 6.598508], [-15.374336999999999, 6.857193], [-15.037823, 7.017697], [-14.708644, 7.082361], [-14.456899, 7.10227], [-14.319476, 7.080526]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-8.652521, 7.071543999999999], [-8.245901, 6.932259999999999], [-7.9609369999999995, 6.689545], [-7.797276999999999, 6.342955], [-7.7535039999999995, 5.934627], [-7.765861999999999, 5.764104], [-7.798298, 5.4573], [-7.848095, 5.0360499999999995], [-7.912539, 4.522188], [-7.988913999999999, 3.9375479999999996], [-8.074506, 3.303963], [-8.133903, 2.875472], [-8.508598, 0.199686], [-8.877048, 0.175748], [-9.079409, 0.169509], [-9.220457999999999, 0.201002], [-9.348025999999999, 0.297015], [-9.509943, 0.484334], [-9.576431, 0.567444], [-9.740860999999999, 0.798383], [-9.846877, 0.995425], [-9.871627, 1.1105639999999999], [-9.852913, 1.217409], [-9.851735, 1.225236], [-9.692139, 1.225236], [-9.661245, 0.9662369999999999], [-9.517854, 0.702394], [-9.301105, 0.479131], [-9.050132999999999, 0.341872], [-8.911756, 0.319497], [-8.650426999999999, 0.319497], [-8.313112, 2.775629], [-8.226604, 3.404594], [-8.144408, 4.000449], [-8.069768, 4.5398179999999995], [-8.005925, 4.99933], [-7.956123, 5.3556099999999995], [-7.923603999999999, 5.585284], [-7.916833, 5.631931], [-7.902601, 6.079809], [-7.995354, 6.446988999999999], [-8.185049, 6.71584], [-8.46164, 6.868729999999999], [-8.637304, 6.896592], [-8.901617, 6.90912], [-9.276804, 4.193397], [-9.366942, 3.5420339999999997], [-9.451656, 2.931953], [-9.528089999999999, 2.383545], [-9.593392, 1.917203], [-9.644707, 1.553319], [-9.679183, 1.312285], [-9.692139, 1.225236], [-9.851735, 1.225236], [-9.815857, 1.463517], [-9.763147, 1.8297949999999998], [-9.697471, 2.297151], [-9.621516, 2.846488], [-9.537970999999999, 3.4587149999999998], [-9.465760999999999, 3.993711], [-9.376614, 4.646604], [-9.290758, 5.255084], [-9.211178, 5.7995019999999995], [-9.140858, 6.260203], [-9.082784, 6.617538], [-9.03994, 6.851852999999999], [-9.018616999999999, 6.937574], [-8.946484, 7.0597579999999995], [-8.832158, 7.094894999999999], [-8.652521, 7.071543999999999]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-1.922453, 7.076296999999999], [-1.8911229999999999, 7.0489], [-1.893892, 6.958944], [-1.917007, 6.728453999999999], [-1.9582629999999999, 6.375044], [-2.015456, 5.916329], [-2.086381, 5.369923], [-2.168835, 4.753442], [-2.2606129999999998, 4.084499], [-2.2754049999999997, 3.97816], [-2.694972, 0.9673259999999999], [-3.1246869999999998, 0.5665819999999999], [-3.366619, 0.3523], [-3.547862, 0.230265], [-3.71616, 0.175414], [-3.893868, 0.162794], [-4.108318, 0.170814], [-4.206916, 0.21553899999999998], [-4.232995, 0.320246], [-4.233333, 0.345157], [-4.226647, 0.44786], [-4.073585, 0.44786], [-4.01781, 0.332211], [-3.8681189999999996, 0.314585], [-3.650959, 0.38797099999999995], [-3.392778, 0.54536], [-3.2381599999999997, 0.669303], [-2.842043, 1.015824], [-2.027857, 6.90912], [-2.2910559999999998, 6.933859], [-2.54858, 6.919061999999999], [-2.7675859999999997, 6.853985], [-2.884919, 6.791640999999999], [-2.983768, 6.719748999999999], [-3.068281, 6.622769], [-3.1426049999999996, 6.48516], [-3.2108879999999997, 6.291382], [-3.2772799999999997, 6.025897], [-3.3459269999999997, 5.673163], [-3.420979, 5.217642], [-3.5065839999999997, 4.643794], [-3.606889, 3.9360779999999997], [-3.6727459999999996, 3.4631119999999997], [-3.7645619999999997, 2.798421], [-3.848978, 2.180717], [-3.9235219999999997, 1.6285809999999998], [-3.985725, 1.160599], [-4.033117, 0.795354], [-4.063226, 0.55143], [-4.073585, 0.44786], [-4.226647, 0.44786], [-4.221617, 0.52512], [-4.188626999999999, 0.832519], [-4.137598, 1.245636], [-4.071763, 1.742753], [-3.9943579999999996, 2.302152], [-3.9086179999999997, 2.902115], [-3.817777, 3.520923], [-3.725071, 4.136858999999999], [-3.633734, 4.728204], [-3.5469999999999997, 5.2732399999999995], [-3.4681059999999997, 5.750249], [-3.4002839999999996, 6.137512999999999], [-3.3467719999999996, 6.413313], [-3.310802, 6.555931999999999], [-3.3069439999999997, 6.564838], [-3.135681, 6.76927], [-2.8754839999999997, 6.941698], [-2.850206, 6.95358], [-2.596694, 7.041202999999999], [-2.324408, 7.094158999999999], [-2.083082, 7.107505], [-1.922453, 7.076296999999999]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[3.6985409999999996, 7.063676], [3.9449479999999997, 6.98788], [4.163726, 6.87585], [4.203771, 6.8467519999999995], [4.321552, 6.750541], [4.415789, 6.655126], [4.4866209999999995, 6.544506999999999], [4.534187, 6.4026819999999995], [4.558625999999999, 6.2136499999999995], [4.560078, 5.96141], [4.538682, 5.62996], [4.494577, 5.2033], [4.427902, 4.6654279999999995], [4.338798, 4.000342], [4.235105, 3.247705], [4.143521, 2.583287], [4.059285, 1.96736], [3.9848429999999997, 1.418188], [3.922643, 0.9540329999999999], [3.875132, 0.593156], [3.844756, 0.35381999999999997], [3.833963, 0.254288], [3.833963, 0.254095], [3.758603, 0.19191899999999998], [3.545185, 0.163573], [3.45456, 0.16236799999999998], [3.226419, 0.17538499999999999], [3.065712, 0.23146], [2.9120939999999997, 0.36196999999999996], [2.775629, 0.515396], [2.610157, 0.740271], [2.501547, 0.947904], [2.4764939999999998, 1.051928], [2.479698, 1.094935], [2.635849, 1.094935], [2.683436, 0.944499], [2.804202, 0.736904], [2.882184, 0.63052], [3.065813, 0.429996], [3.23236, 0.337885], [3.392477, 0.319497], [3.578664, 0.33899399999999996], [3.666104, 0.43058599999999997], [3.703096, 0.579089], [3.725024, 0.719125], [3.76571, 0.996671], [3.8222099999999997, 1.390969], [3.8915819999999997, 1.881263], [3.970884, 2.4467939999999997], [4.057174, 3.066805], [4.116067, 3.4924679999999997], [4.215157, 4.213776999999999], [4.293222, 4.794326], [4.351696, 5.251519], [4.392014, 5.602755], [4.415608, 5.865438999999999], [4.423913, 6.056972], [4.418362, 6.194756], [4.40039, 6.296194], [4.37143, 6.378686999999999], [4.356565, 6.411385999999999], [4.172832, 6.665362999999999], [3.9172659999999997, 6.8576429999999995], [3.647379, 6.947049], [3.605604, 6.949057], [3.4771319999999997, 6.902426999999999], [3.405964, 6.739439], [3.396082, 6.6894659999999995], [3.367059, 6.506964], [3.321892, 6.200672], [3.2636529999999997, 5.793203], [3.195414, 5.307166], [3.120249, 4.765171], [3.0412299999999997, 4.189827999999999], [2.961429, 3.6037489999999996], [2.883918, 3.029543], [2.811771, 2.489821], [2.748059, 2.007193], [2.695856, 1.6042699999999999], [2.658233, 1.3036619999999999], [2.638263, 1.1279789999999998], [2.635849, 1.094935], [2.479698, 1.094935], [2.487748, 1.202957], [2.519113, 1.481739], [2.567497, 1.8669589999999998], [2.6298109999999997, 2.3373019999999998], [2.702963, 2.871454], [2.7838629999999998, 3.448101], [2.86942, 4.045928], [2.956544, 4.6436209999999996], [3.0421449999999997, 5.219866], [3.123131, 5.753348], [3.196412, 6.222753], [3.258898, 6.606767], [3.307498, 6.884074], [3.339121, 7.0333619999999994], [3.346613, 7.052777], [3.4804489999999997, 7.08979], [3.6985409999999996, 7.063676]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[10.359472, 7.0885229999999995], [10.417660999999999, 7.038518], [10.416969, 6.946092999999999], [10.396168, 6.713258], [10.35738, 6.357794999999999], [10.302722, 5.8974899999999995], [10.234314, 5.350124], [10.154275, 4.7334819999999995], [10.064726, 4.065348], [10.053547, 3.983329], [9.645994, 0.998428], [9.19611, 0.582202], [8.950244999999999, 0.364672], [8.768293, 0.238499], [8.603976, 0.17938099999999998], [8.411014999999999, 0.163015], [8.397558, 0.16286299999999998], [8.048888999999999, 0.159749], [8.075142999999999, 0.374376], [8.227044, 0.374376], [8.296674, 0.336186], [8.464979999999999, 0.319524], [8.472605, 0.319497], [8.655305, 0.354723], [8.855801, 0.47544899999999995], [9.106332, 0.6989], [9.494498, 1.0783019999999999], [9.861839999999999, 3.754089], [9.950982, 4.401178], [10.03507, 5.007358], [10.111196999999999, 5.551975], [10.176451, 6.014374999999999], [10.227922999999999, 6.373901999999999], [10.262704, 6.609903], [10.275368, 6.6894659999999995], [10.29636, 6.857523], [10.251489, 6.930733], [10.100988, 6.948414], [10.013135, 6.948758], [9.661405, 6.886857999999999], [9.357401, 6.720892], [9.149238, 6.479419], [9.121222999999999, 6.419353], [9.096245, 6.307715], [9.052368, 6.0597199999999996], [8.992825, 5.697219], [8.920846, 5.242063], [8.839666, 4.716104], [8.752514999999999, 4.141191], [8.662626, 3.539177], [8.573231999999999, 2.931911], [8.487565, 2.341246], [8.408856, 1.789032], [8.340338, 1.297121], [8.285243, 0.887362], [8.246804, 0.581608], [8.228253, 0.401709], [8.227044, 0.374376], [8.075142999999999, 0.374376], [8.10507, 0.619026], [8.129683, 0.808179], [8.173606, 1.133031], [8.233732, 1.571111], [8.306953, 2.099948], [8.390163, 2.6970739999999997], [8.480254, 3.340019], [8.541808999999999, 3.777367], [8.644454, 4.502848], [8.728655999999999, 5.0871569999999995], [8.797943, 5.54735], [8.855845, 5.900485], [8.90589, 6.16362], [8.951608, 6.353810999999999], [8.996528, 6.488115], [9.044179, 6.583590999999999], [9.098091, 6.6572949999999995], [9.149253, 6.7132499999999995], [9.358946, 6.873971999999999], [9.627936, 7.002917999999999], [9.913101, 7.089029999999999], [10.17132, 7.12125], [10.359472, 7.0885229999999995]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[16.005561999999998, 7.062729999999999], [16.257924, 6.972269], [16.495963, 6.838721], [16.580766, 6.772564999999999], [16.777855, 6.545077999999999], [16.891348999999998, 6.3052459999999995], [16.896448, 6.281954], [16.897334, 6.142352], [16.877478, 5.864843], [16.83908, 5.469613], [16.784342, 4.9768479999999995], [16.715464, 4.406733], [16.634646999999998, 3.779454], [16.577039, 3.352678], [16.467935999999998, 2.554178], [16.378757, 1.89957], [16.305984, 1.374723], [16.246098, 0.965509], [16.195581999999998, 0.657801], [16.150916, 0.437469], [16.108583, 0.290385], [16.065064, 0.20242], [16.016841, 0.159445], [15.960396, 0.147334], [15.892209999999999, 0.15195599999999998], [15.808765999999999, 0.159183], [15.781937, 0.159749], [15.532815999999999, 0.185108], [15.34479, 0.28614999999999996], [15.207571999999999, 0.41934], [15.033581, 0.613591], [14.892859999999999, 0.78023], [14.865212, 0.815595], [14.841381, 0.874193], [14.831724, 0.965297], [14.921743999999999, 0.965297], [15.188702, 0.641274], [15.3662, 0.446083], [15.511588, 0.35430799999999996], [15.679682, 0.33533799999999997], [15.731145999999999, 0.338343], [16.006629999999998, 0.359434], [16.404332, 3.243929], [16.508741, 4.006095], [16.591756999999998, 4.626505], [16.654887, 5.1215019999999996], [16.699638999999998, 5.507427], [16.72752, 5.800624], [16.740037, 6.017435], [16.738697, 6.174201999999999], [16.725006999999998, 6.287268999999999], [16.700475, 6.372977], [16.694332, 6.388439], [16.528481, 6.63317], [16.280777999999998, 6.8315969999999995], [16.011184, 6.940099999999999], [15.924126, 6.948758], [15.835628999999999, 6.932548], [15.774484, 6.862222999999999], [15.727373, 6.705806], [15.680976999999999, 6.431317], [15.666454, 6.330032], [15.632836999999999, 6.089970999999999], [15.581024999999999, 5.718344999999999], [15.514724999999999, 5.241827], [15.437645, 4.687091], [15.353494, 4.080812], [15.265979999999999, 3.449664], [15.250527, 3.338152], [14.921743999999999, 0.965297], [14.831724, 0.965297], [14.830072999999999, 0.980868], [14.832716999999999, 1.1499819999999998], [14.850738999999999, 1.3958979999999999], [14.885567, 1.732977], [14.938626, 2.1755839999999997], [15.011344999999999, 2.738079], [15.105148999999999, 3.434827], [15.178673, 3.9706259999999998], [15.273335, 4.647584999999999], [15.363539999999999, 5.2749749999999995], [15.446562, 5.835133], [15.519675, 6.310395], [15.580150999999999, 6.683096], [15.625262999999999, 6.9355709999999995], [15.652286, 7.050157], [15.654708999999999, 7.0544709999999995], [15.788086999999999, 7.095123999999999], [16.005561999999998, 7.062729999999999]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[-10.542777, 7.092395], [-10.080351, 7.0873], [-9.711604999999999, 7.078538999999999], [-9.457341999999999, 7.066481], [-9.338365, 7.0514969999999995], [-9.333003999999999, 7.048602], [-9.315488, 6.945411], [-9.322911, 6.7252529999999995], [-9.351234, 6.42826], [-9.396419999999999, 6.094564], [-9.45443, 5.764297], [-9.469591, 5.691038], [-9.508075, 5.511321], [-11.785475, 5.511321], [-12.485216, 5.512941], [-13.038979999999999, 5.518197], [-13.46051, 5.527683], [-13.763549, 5.541989999999999], [-13.961839, 5.561713999999999], [-14.069123, 5.587446], [-14.098172, 5.611164], [-14.10071, 5.671069999999999], [-13.995305, 5.671069999999999], [-9.603515999999999, 5.671069999999999], [-9.546425, 6.204171], [-9.511381, 6.492484999999999], [-9.475679, 6.724133999999999], [-9.448699999999999, 6.843165], [-9.462192, 6.875272], [-9.540320999999999, 6.900467], [-9.698342, 6.919499], [-9.951509, 6.933119], [-10.315076, 6.942075], [-10.804295, 6.9471169999999995], [-11.434422999999999, 6.948994], [-11.603949, 6.949057], [-13.799831999999999, 6.949057], [-13.854892999999999, 6.48978], [-13.892885, 6.203008], [-13.931624, 5.957320999999999], [-13.952629, 5.8507869999999995], [-13.995305, 5.671069999999999], [-14.10071, 5.671069999999999], [-14.103288, 5.731896], [-14.086272999999998, 5.966934999999999], [-14.050680999999999, 6.272919], [-14.034320999999998, 6.389938], [-13.935172, 7.068867999999999], [-11.665458, 7.090106], [-11.07808, 7.0934539999999995], [-10.542777, 7.092395]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[1.04151, 7.116693], [1.551381, 7.110138999999999], [2.0209799999999998, 7.098235], [2.425471, 7.08101], [2.740021, 7.058497], [2.9397949999999997, 7.030726], [3.000391, 7.004485], [3.007259, 6.8815539999999995], [2.990681, 6.644988], [2.95418, 6.338607], [2.937766, 6.225712], [2.835108, 5.551258], [0.544403, 5.530074], [-0.04412, 5.526692], [-0.5791569999999999, 5.527565999999999], [-1.0403229999999999, 5.5323459999999995], [-1.407232, 5.540684], [-1.6594989999999998, 5.5522279999999995], [-1.776738, 5.566628], [-1.782312, 5.570011], [-1.7889009999999999, 5.671069999999999], [-1.640258, 5.671069999999999], [2.6975849999999997, 5.671069999999999], [2.750623, 6.050472], [2.793444, 6.343471999999999], [2.836522, 6.618307], [2.8484559999999997, 6.6894659999999995], [2.893251, 6.949057], [-1.4888839999999999, 6.949057], [-1.564571, 6.3100629999999995], [-1.640258, 5.671069999999999], [-1.7889009999999999, 5.671069999999999], [-1.7892949999999999, 5.677099], [-1.7718399999999999, 5.894616], [-1.736788, 6.176333], [-1.690982, 6.4760219999999995], [-1.641265, 6.747456], [-1.59448, 6.944407999999999], [-1.5691439999999999, 7.010167], [-1.4727249999999998, 7.04193], [-1.242737, 7.068127], [-0.904017, 7.088788999999999], [-0.481398, 7.1039449999999995], [0.000286, 7.113626999999999], [0.5162, 7.117865999999999], [1.04151, 7.116693]]]}, {"angle": [180.0], "type": "polygon", "pos": [60.0, 79.0], "polygons": [[[15.275094, 6.5496859999999995], [15.2539, 6.2351529999999995], [15.220218, 5.95012], [15.189504, 5.790881], [15.124732, 5.551258], [12.823621, 5.530048], [10.522511, 5.508837], [10.538496, 5.671069999999999], [10.68746, 5.671069999999999], [14.999035, 5.671069999999999], [15.04171, 5.8507869999999995], [15.074916, 6.029503], [15.1146, 6.296538], [15.139446999999999, 6.48978], [15.194507999999999, 6.949057], [13.034082999999999, 6.949057], [12.381091, 6.950587], [11.869912, 6.951135], [11.482693, 6.944636], [11.201581, 6.925028999999999], [11.008721, 6.886247999999999], [10.886258999999999, 6.8222309999999995], [10.816341999999999, 6.726915], [10.781115, 6.5942359999999995], [10.762725999999999, 6.4181289999999995], [10.743319999999999, 6.192533], [10.740986999999999, 6.1702829999999995], [10.68746, 5.671069999999999], [10.538496, 5.671069999999999], [10.576519, 6.056935999999999], [10.613586999999999, 6.375077999999999], [10.656723, 6.66149], [10.692551, 6.836951], [10.754574999999999, 7.068867999999999], [15.295912, 7.068867999999999], [15.275094, 6.5496859999999995]]]}, {"start": [41.199999999999996, 69.5], "end": [41.199999999999996, 88.5], "type": "segment", "width": 0.15}, {"start": [78.8, 69.5], "end": [78.8, 88.5], "type": "segment", "width": 0.15}, {"start": [78.8, 69.5], "end": [41.199999999999996, 69.5], "type": "segment", "width": 0.15}, {"start": [78.8, 88.5], "end": [41.199999999999996, 88.5], "type": "segment", "width": 0.15}], "F": [{"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "Digital Termostat V1.0", "thickness": 0.12, "pos": [35.369499999999995, 62.5475], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "+TC", "thickness": 0.19999999999999998, "pos": [65.024, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "-OUT", "thickness": 0.19999999999999998, "pos": [59.943999999999996, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "+OUT", "thickness": 0.19999999999999998, "pos": [54.864, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "GND", "thickness": 0.19999999999999998, "pos": [49.784, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "SIG", "thickness": 0.19999999999999998, "pos": [44.704, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "+24V", "thickness": 0.19999999999999998, "pos": [39.623999999999995, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "GND", "thickness": 0.19999999999999998, "pos": [34.544, 109.22], "height": 1.0}, {"width": 1.0, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "+V", "thickness": 0.19999999999999998, "pos": [29.464, 109.22], "height": 1.0}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "J4", "thickness": 0.09999999999999999, "pos": [97.536, 69.977], "height": 0.7}, {"start": [98.866, 70.93299999999999], "end": [96.20599999999999, 70.93299999999999], "type": "segment", "width": 0.12}, {"start": [98.866, 78.613], "end": [98.866, 70.93299999999999], "type": "segment", "width": 0.12}, {"start": [96.20599999999999, 78.613], "end": [96.20599999999999, 70.93299999999999], "type": "segment", "width": 0.12}, {"start": [98.866, 78.613], "end": [96.20599999999999, 78.613], "type": "segment", "width": 0.12}, {"start": [98.866, 79.883], "end": [98.866, 81.213], "type": "segment", "width": 0.12}, {"start": [98.866, 81.213], "end": [97.536, 81.213], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R33", "thickness": 0.09999999999999999, "pos": [63.879999999999995, 64.13499999999999], "height": 0.7}, {"start": [63.11, 63.535], "end": [63.11, 64.735], "type": "segment", "width": 0.12}, {"start": [61.349999999999994, 64.735], "end": [61.349999999999994, 63.535], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R34", "thickness": 0.09999999999999999, "pos": [68.96, 64.13499999999999], "height": 0.7}, {"start": [66.42999999999999, 64.735], "end": [66.42999999999999, 63.535], "type": "segment", "width": 0.12}, {"start": [68.19, 63.535], "end": [68.19, 64.735], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R35", "thickness": 0.09999999999999999, "pos": [93.345, 78.67649999999999], "height": 0.7}, {"start": [94.225, 80.172], "end": [94.225, 81.372], "type": "segment", "width": 0.12}, {"start": [92.46499999999999, 81.372], "end": [92.46499999999999, 80.172], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R31", "thickness": 0.09999999999999999, "pos": [53.72, 64.13499999999999], "height": 0.7}, {"start": [51.19, 64.735], "end": [51.19, 63.535], "type": "segment", "width": 0.12}, {"start": [52.949999999999996, 63.535], "end": [52.949999999999996, 64.735], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R36", "thickness": 0.09999999999999999, "pos": [69.85, 96.774], "height": 0.7}, {"start": [67.446, 97.374], "end": [67.446, 96.17399999999999], "type": "segment", "width": 0.12}, {"start": [69.206, 96.17399999999999], "end": [69.206, 97.374], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R32", "thickness": 0.09999999999999999, "pos": [58.8, 64.13499999999999], "height": 0.7}, {"start": [56.269999999999996, 64.735], "end": [56.269999999999996, 63.535], "type": "segment", "width": 0.12}, {"start": [58.029999999999994, 63.535], "end": [58.029999999999994, 64.735], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C6", "thickness": 0.09999999999999999, "pos": [98.845714, 91.313], "height": 0.7}, {"start": [97.02, 90.463], "end": [96.02, 90.463], "type": "segment", "width": 0.12}, {"start": [96.02, 92.163], "end": [97.02, 92.163], "type": "segment", "width": 0.12}, {"width": 0.6, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C17", "thickness": 0.09999999999999999, "pos": [99.03380899999999, 93.091], "height": 0.6}, {"start": [97.02, 92.241], "end": [96.02, 92.241], "type": "segment", "width": 0.12}, {"start": [96.02, 93.941], "end": [97.02, 93.941], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C16", "thickness": 0.09999999999999999, "pos": [81.407, 91.059], "height": 0.7}, {"start": [83.78099999999999, 91.559], "end": [83.78099999999999, 90.559], "type": "segment", "width": 0.12}, {"start": [82.081, 90.559], "end": [82.081, 91.559], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C15", "thickness": 0.09999999999999999, "pos": [73.279, 71.11999999999999], "height": 0.7}, {"start": [73.779, 71.794], "end": [72.779, 71.794], "type": "segment", "width": 0.12}, {"start": [72.779, 73.494], "end": [73.779, 73.494], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C14", "thickness": 0.09999999999999999, "pos": [62.864999999999995, 89.2175], "height": 0.7}, {"start": [62.015, 91.448], "end": [62.015, 92.448], "type": "segment", "width": 0.12}, {"start": [63.714999999999996, 92.448], "end": [63.714999999999996, 91.448], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C12", "thickness": 0.09999999999999999, "pos": [92.583, 107.06099999999999], "height": 0.7}, {"start": [91.90899999999999, 107.56099999999999], "end": [91.90899999999999, 106.56099999999999], "type": "segment", "width": 0.12}, {"start": [90.20899999999999, 106.56099999999999], "end": [90.20899999999999, 107.56099999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C11", "thickness": 0.09999999999999999, "pos": [56.769, 89.2175], "height": 0.7}, {"start": [57.619, 92.448], "end": [57.619, 91.448], "type": "segment", "width": 0.12}, {"start": [55.919, 91.448], "end": [55.919, 92.448], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C9", "thickness": 0.09999999999999999, "pos": [48.641, 98.1075], "height": 0.7}, {"start": [49.141, 95.67], "end": [48.141, 95.67], "type": "segment", "width": 0.12}, {"start": [48.141, 97.36999999999999], "end": [49.141, 97.36999999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C19", "thickness": 0.09999999999999999, "pos": [23.749, 97.155], "height": 0.7}, {"start": [26.916, 96.30499999999999], "end": [25.916, 96.30499999999999], "type": "segment", "width": 0.12}, {"start": [25.916, 98.005], "end": [26.916, 98.005], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C4", "thickness": 0.09999999999999999, "pos": [85.344, 96.7105], "height": 0.7}, {"start": [85.844, 97.194], "end": [84.844, 97.194], "type": "segment", "width": 0.12}, {"start": [84.844, 98.89399999999999], "end": [85.844, 98.89399999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C2", "thickness": 0.09999999999999999, "pos": [98.845714, 83.947], "height": 0.7}, {"start": [96.02, 84.797], "end": [97.02, 84.797], "type": "segment", "width": 0.12}, {"start": [97.02, 83.097], "end": [96.02, 83.097], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C20", "thickness": 0.09999999999999999, "pos": [23.749, 93.345], "height": 0.7}, {"start": [26.916, 92.49499999999999], "end": [25.916, 92.49499999999999], "type": "segment", "width": 0.12}, {"start": [25.916, 94.195], "end": [26.916, 94.195], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C1", "thickness": 0.09999999999999999, "pos": [98.845714, 89.535], "height": 0.7}, {"start": [96.02, 90.38499999999999], "end": [97.02, 90.38499999999999], "type": "segment", "width": 0.12}, {"start": [97.02, 88.685], "end": [96.02, 88.685], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C5", "thickness": 0.09999999999999999, "pos": [85.344, 109.44999999999999], "height": 0.7}, {"start": [85.844, 107.1], "end": [84.844, 107.1], "type": "segment", "width": 0.12}, {"start": [84.844, 108.8], "end": [85.844, 108.8], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C13", "thickness": 0.09999999999999999, "pos": [64.51599999999999, 94.55149999999999], "height": 0.7}, {"start": [61.349, 95.719], "end": [62.349, 95.719], "type": "segment", "width": 0.12}, {"start": [62.349, 94.01899999999999], "end": [61.349, 94.01899999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "BL1", "thickness": 0.09999999999999999, "pos": [92.64649999999999, 103.505], "height": 0.7}, {"start": [90.179, 104.10499999999999], "end": [90.179, 102.905], "type": "segment", "width": 0.12}, {"start": [91.939, 102.905], "end": [91.939, 104.10499999999999], "type": "segment", "width": 0.12}, {"width": 0.65, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "BL2", "thickness": 0.09999999999999999, "pos": [99.06, 95.631], "height": 0.65}, {"start": [95.92, 94.116], "end": [97.11999999999999, 94.116], "type": "segment", "width": 0.12}, {"start": [97.11999999999999, 95.87599999999999], "end": [95.92, 95.87599999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R22", "thickness": 0.09999999999999999, "pos": [90.1065, 100.96499999999999], "height": 0.7}, {"start": [89.526, 100.365], "end": [89.526, 101.565], "type": "segment", "width": 0.12}, {"start": [87.76599999999999, 101.565], "end": [87.76599999999999, 100.365], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R21", "thickness": 0.09999999999999999, "pos": [83.312, 106.045], "height": 0.7}, {"start": [84.744, 105.16499999999999], "end": [85.944, 105.16499999999999], "type": "segment", "width": 0.12}, {"start": [85.944, 106.925], "end": [84.744, 106.925], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R15", "thickness": 0.09999999999999999, "pos": [54.483, 89.916], "height": 0.7}, {"start": [53.839, 89.316], "end": [53.839, 90.51599999999999], "type": "segment", "width": 0.12}, {"start": [52.079, 90.51599999999999], "end": [52.079, 89.316], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R14", "thickness": 0.09999999999999999, "pos": [51.053999999999995, 86.99499999999999], "height": 0.7}, {"start": [51.934, 89.316], "end": [51.934, 90.51599999999999], "type": "segment", "width": 0.12}, {"start": [50.174, 90.51599999999999], "end": [50.174, 89.316], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R13", "thickness": 0.09999999999999999, "pos": [47.244, 86.99499999999999], "height": 0.7}, {"start": [46.364, 90.51599999999999], "end": [46.364, 89.316], "type": "segment", "width": 0.12}, {"start": [48.123999999999995, 89.316], "end": [48.123999999999995, 90.51599999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R12", "thickness": 0.09999999999999999, "pos": [49.149, 86.99499999999999], "height": 0.7}, {"start": [48.269, 90.51599999999999], "end": [48.269, 89.316], "type": "segment", "width": 0.12}, {"start": [50.028999999999996, 89.316], "end": [50.028999999999996, 90.51599999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R1", "thickness": 0.09999999999999999, "pos": [78.359, 97.21849999999999], "height": 0.7}, {"start": [79.23899999999999, 98.58699999999999], "end": [79.23899999999999, 99.78699999999999], "type": "segment", "width": 0.12}, {"start": [77.479, 99.78699999999999], "end": [77.479, 98.58699999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R2", "thickness": 0.09999999999999999, "pos": [96.52, 98.425], "height": 0.7}, {"start": [95.92, 96.021], "end": [97.11999999999999, 96.021], "type": "segment", "width": 0.12}, {"start": [97.11999999999999, 97.78099999999999], "end": [95.92, 97.78099999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R3", "thickness": 0.09999999999999999, "pos": [75.946, 100.5205], "height": 0.7}, {"start": [76.54599999999999, 102.86099999999999], "end": [75.346, 102.86099999999999], "type": "segment", "width": 0.12}, {"start": [75.346, 101.101], "end": [76.54599999999999, 101.101], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "NTC1", "thickness": 0.09999999999999999, "pos": [70.104, 107.18799999999999], "height": 0.7}, {"start": [69.50399999999999, 108.213], "end": [70.704, 108.213], "type": "segment", "width": 0.12}, {"start": [70.704, 109.973], "end": [69.50399999999999, 109.973], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R4", "thickness": 0.09999999999999999, "pos": [98.845714, 85.85199999999999], "height": 0.7}, {"start": [95.92, 84.972], "end": [97.11999999999999, 84.972], "type": "segment", "width": 0.12}, {"start": [97.11999999999999, 86.732], "end": [95.92, 86.732], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R5", "thickness": 0.09999999999999999, "pos": [75.946, 105.53699999999999], "height": 0.7}, {"start": [75.346, 103.133], "end": [76.54599999999999, 103.133], "type": "segment", "width": 0.12}, {"start": [76.54599999999999, 104.893], "end": [75.346, 104.893], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R6", "thickness": 0.09999999999999999, "pos": [98.845714, 87.75699999999999], "height": 0.7}, {"start": [95.92, 86.877], "end": [97.11999999999999, 86.877], "type": "segment", "width": 0.12}, {"start": [97.11999999999999, 88.637], "end": [95.92, 88.637], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R7", "thickness": 0.09999999999999999, "pos": [83.312, 99.949], "height": 0.7}, {"start": [85.944, 100.829], "end": [84.744, 100.829], "type": "segment", "width": 0.12}, {"start": [84.744, 99.069], "end": [85.944, 99.069], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R30", "thickness": 0.09999999999999999, "pos": [23.749, 95.25], "height": 0.7}, {"start": [25.816, 94.36999999999999], "end": [27.016, 94.36999999999999], "type": "segment", "width": 0.12}, {"start": [27.016, 96.13], "end": [25.816, 96.13], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "BL3", "thickness": 0.09999999999999999, "pos": [45.085, 98.17099999999999], "height": 0.7}, {"start": [46.155, 94.377], "end": [46.155, 96.377], "type": "segment", "width": 0.12}, {"start": [44.015, 96.377], "end": [44.015, 94.377], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "U2", "thickness": 0.09999999999999999, "pos": [83.05799999999999, 102.997], "height": 0.7}, {"start": [83.734, 102.097], "end": [83.734, 103.89699999999999], "type": "segment", "width": 0.12}, {"start": [86.954, 103.89699999999999], "end": [86.954, 101.44699999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "D9", "thickness": 0.09999999999999999, "pos": [58.674, 98.2345], "height": 0.7}, {"start": [57.974, 97.55799999999999], "end": [59.373999999999995, 97.55799999999999], "type": "segment", "width": 0.12}, {"start": [59.373999999999995, 97.55799999999999], "end": [59.373999999999995, 94.758], "type": "segment", "width": 0.12}, {"start": [57.974, 97.55799999999999], "end": [57.974, 94.758], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R28", "thickness": 0.09999999999999999, "pos": [61.849, 98.42399999999999], "height": 0.7}, {"start": [61.248999999999995, 95.89399999999999], "end": [62.449, 95.89399999999999], "type": "segment", "width": 0.12}, {"start": [62.449, 97.654], "end": [61.248999999999995, 97.654], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "J3", "thickness": 0.09999999999999999, "pos": [57.403999999999996, 99.314], "height": 0.7}, {"start": [62.483999999999995, 106.553], "end": [52.324, 106.553], "type": "segment", "width": 0.12}, {"start": [62.483999999999995, 107.823], "end": [62.483999999999995, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [62.483999999999995, 100.20299999999999], "end": [52.324, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [52.324, 100.20299999999999], "end": [52.324, 107.823], "type": "segment", "width": 0.12}, {"start": [52.324, 107.823], "end": [62.483999999999995, 107.823], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "J2", "thickness": 0.09999999999999999, "pos": [44.674, 99.363], "height": 0.7}, {"start": [37.083999999999996, 107.823], "end": [37.083999999999996, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [52.324, 107.823], "end": [52.324, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [37.083999999999996, 106.553], "end": [52.324, 106.553], "type": "segment", "width": 0.12}, {"start": [37.083999999999996, 100.20299999999999], "end": [52.324, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [37.083999999999996, 107.823], "end": [52.324, 107.823], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "C3", "thickness": 0.09999999999999999, "pos": [88.5825, 109.347], "height": 0.7}, {"start": [89.696, 103.395], "end": [89.696, 107.645], "type": "segment", "width": 0.12}, {"start": [87.59599999999999, 103.395], "end": [87.59599999999999, 107.645], "type": "segment", "width": 0.12}, {"start": [89.696, 103.395], "end": [87.59599999999999, 103.395], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "D4", "thickness": 0.09999999999999999, "pos": [37.592, 93.091], "height": 0.7}, {"start": [40.992, 94.741], "end": [35.592, 94.741], "type": "segment", "width": 0.12}, {"start": [40.992, 91.441], "end": [35.592, 91.441], "type": "segment", "width": 0.12}, {"start": [40.992, 94.741], "end": [40.992, 91.441], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "D5", "thickness": 0.09999999999999999, "pos": [37.592, 96.774], "height": 0.7}, {"start": [40.992, 98.42399999999999], "end": [40.992, 95.124], "type": "segment", "width": 0.12}, {"start": [40.992, 95.124], "end": [35.592, 95.124], "type": "segment", "width": 0.12}, {"start": [40.992, 98.42399999999999], "end": [35.592, 98.42399999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "F1", "thickness": 0.09999999999999999, "pos": [42.672, 98.17099999999999], "height": 0.7}, {"start": [41.762, 95.979064], "end": [41.762, 94.774936], "type": "segment", "width": 0.12}, {"start": [43.582, 95.979064], "end": [43.582, 94.774936], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "U3", "thickness": 0.09999999999999999, "pos": [26.416, 87.503], "height": 0.7}, {"start": [25.316, 89.90299999999999], "end": [25.316, 91.603], "type": "segment", "width": 0.12}, {"start": [27.516, 85.103], "end": [27.816, 85.103], "type": "segment", "width": 0.12}, {"start": [27.816, 85.103], "end": [27.816, 89.90299999999999], "type": "segment", "width": 0.12}, {"start": [27.816, 89.90299999999999], "end": [27.516, 89.90299999999999], "type": "segment", "width": 0.12}, {"start": [25.316, 89.90299999999999], "end": [25.016, 89.90299999999999], "type": "segment", "width": 0.12}, {"start": [25.016, 89.90299999999999], "end": [25.016, 85.103], "type": "segment", "width": 0.12}, {"start": [25.016, 85.103], "end": [25.316, 85.103], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "R29", "thickness": 0.09999999999999999, "pos": [30.2895, 89.789], "height": 0.7}, {"start": [32.046, 91.50699999999999], "end": [32.046, 96.707], "type": "segment", "width": 0.12}, {"start": [28.406, 96.707], "end": [28.406, 91.50699999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "Q2", "thickness": 0.09999999999999999, "pos": [58.6975, 67.6275], "height": 0.7}, {"start": [54.6175, 68.3875], "end": [54.6175, 66.9275], "type": "segment", "width": 0.12}, {"start": [57.777499999999996, 68.3875], "end": [57.777499999999996, 66.22749999999999], "type": "segment", "width": 0.12}, {"start": [57.777499999999996, 68.3875], "end": [56.8475, 68.3875], "type": "segment", "width": 0.12}, {"start": [54.6175, 68.3875], "end": [55.5475, 68.3875], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "Q6", "thickness": 0.09999999999999999, "pos": [65.532, 99.12349999999999], "height": 0.7}, {"start": [64.77199999999999, 95.194], "end": [64.77199999999999, 96.124], "type": "segment", "width": 0.12}, {"start": [64.77199999999999, 98.354], "end": [64.77199999999999, 97.42399999999999], "type": "segment", "width": 0.12}, {"start": [64.77199999999999, 98.354], "end": [66.932, 98.354], "type": "segment", "width": 0.12}, {"start": [64.77199999999999, 95.194], "end": [66.232, 95.194], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "Q5", "thickness": 0.09999999999999999, "pos": [90.42399999999999, 78.232], "height": 0.7}, {"start": [89.664, 79.192], "end": [91.124, 79.192], "type": "segment", "width": 0.12}, {"start": [89.664, 82.35199999999999], "end": [91.824, 82.35199999999999], "type": "segment", "width": 0.12}, {"start": [89.664, 82.35199999999999], "end": [89.664, 81.422], "type": "segment", "width": 0.12}, {"start": [89.664, 79.192], "end": [89.664, 80.122], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "Q3", "thickness": 0.09999999999999999, "pos": [63.777499999999996, 67.6275], "height": 0.7}, {"start": [59.6975, 68.3875], "end": [60.6275, 68.3875], "type": "segment", "width": 0.12}, {"start": [62.857499999999995, 68.3875], "end": [61.927499999999995, 68.3875], "type": "segment", "width": 0.12}, {"start": [62.857499999999995, 68.3875], "end": [62.857499999999995, 66.22749999999999], "type": "segment", "width": 0.12}, {"start": [59.6975, 68.3875], "end": [59.6975, 66.9275], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "Q1", "thickness": 0.09999999999999999, "pos": [53.6175, 67.6275], "height": 0.7}, {"start": [49.537499999999994, 68.3875], "end": [49.537499999999994, 66.9275], "type": "segment", "width": 0.12}, {"start": [52.6975, 68.3875], "end": [52.6975, 66.22749999999999], "type": "segment", "width": 0.12}, {"start": [52.6975, 68.3875], "end": [51.7675, 68.3875], "type": "segment", "width": 0.12}, {"start": [49.537499999999994, 68.3875], "end": [50.4675, 68.3875], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "Q4", "thickness": 0.09999999999999999, "pos": [68.8575, 67.6275], "height": 0.7}, {"start": [64.7775, 68.3875], "end": [65.7075, 68.3875], "type": "segment", "width": 0.12}, {"start": [67.9375, 68.3875], "end": [67.0075, 68.3875], "type": "segment", "width": 0.12}, {"start": [67.9375, 68.3875], "end": [67.9375, 66.22749999999999], "type": "segment", "width": 0.12}, {"start": [64.7775, 68.3875], "end": [64.7775, 66.9275], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R16", "thickness": 0.09999999999999999, "pos": [56.1975, 81.0895], "height": 0.7}, {"start": [57.081319, 83.195061], "end": [57.081319, 84.395061], "type": "segment", "width": 0.12}, {"start": [55.321318999999995, 84.395061], "end": [55.321318999999995, 83.195061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R20", "thickness": 0.09999999999999999, "pos": [66.3575, 81.0895], "height": 0.7}, {"start": [65.481319, 84.395061], "end": [65.481319, 83.195061], "type": "segment", "width": 0.12}, {"start": [67.24131899999999, 83.195061], "end": [67.24131899999999, 84.395061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R19", "thickness": 0.09999999999999999, "pos": [63.817499999999995, 81.0895], "height": 0.7}, {"start": [64.701319, 83.195061], "end": [64.701319, 84.395061], "type": "segment", "width": 0.12}, {"start": [62.941319, 84.395061], "end": [62.941319, 83.195061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R17", "thickness": 0.09999999999999999, "pos": [58.7375, 81.0895], "height": 0.7}, {"start": [57.861318999999995, 84.395061], "end": [57.861318999999995, 83.195061], "type": "segment", "width": 0.12}, {"start": [59.621319, 83.195061], "end": [59.621319, 84.395061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R10", "thickness": 0.09999999999999999, "pos": [53.6575, 76.7715], "height": 0.7}, {"start": [52.781318999999996, 74.743061], "end": [52.781318999999996, 73.543061], "type": "segment", "width": 0.12}, {"start": [54.541318999999994, 73.543061], "end": [54.541318999999994, 74.743061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R8", "thickness": 0.09999999999999999, "pos": [63.817499999999995, 76.5175], "height": 0.7}, {"start": [64.701319, 73.543061], "end": [64.701319, 74.743061], "type": "segment", "width": 0.12}, {"start": [62.941319, 74.743061], "end": [62.941319, 73.543061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R9", "thickness": 0.09999999999999999, "pos": [61.277499999999996, 76.454], "height": 0.7}, {"start": [60.401318999999994, 74.743061], "end": [60.401318999999994, 73.543061], "type": "segment", "width": 0.12}, {"start": [62.161319, 73.543061], "end": [62.161319, 74.743061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "R18", "thickness": 0.09999999999999999, "pos": [61.277499999999996, 81.0895], "height": 0.7}, {"start": [60.401318999999994, 84.395061], "end": [60.401318999999994, 83.195061], "type": "segment", "width": 0.12}, {"start": [62.161319, 83.195061], "end": [62.161319, 84.395061], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "U8", "thickness": 0.09999999999999999, "pos": [68.7705, 73.66], "height": 0.7}, {"start": [69.493319, 74.529061], "end": [69.493319, 74.55406099999999], "type": "segment", "width": 0.15}, {"start": [73.64331899999999, 74.529061], "end": [73.64331899999999, 74.634061], "type": "segment", "width": 0.15}, {"start": [73.64331899999999, 84.67906099999999], "end": [73.64331899999999, 84.574061], "type": "segment", "width": 0.15}, {"start": [69.493319, 84.67906099999999], "end": [69.493319, 84.574061], "type": "segment", "width": 0.15}, {"start": [69.493319, 74.529061], "end": [73.64331899999999, 74.529061], "type": "segment", "width": 0.15}, {"start": [69.493319, 84.67906099999999], "end": [73.64331899999999, 84.67906099999999], "type": "segment", "width": 0.15}, {"start": [69.493319, 74.55406099999999], "end": [68.118319, 74.55406099999999], "type": "segment", "width": 0.15}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "D3", "thickness": 0.09999999999999999, "pos": [81.28, 107.2515], "height": 0.7}, {"start": [82.03999999999999, 106.482], "end": [82.03999999999999, 105.55199999999999], "type": "segment", "width": 0.12}, {"start": [82.03999999999999, 103.32199999999999], "end": [82.03999999999999, 104.252], "type": "segment", "width": 0.12}, {"start": [82.03999999999999, 103.32199999999999], "end": [79.88, 103.32199999999999], "type": "segment", "width": 0.12}, {"start": [82.03999999999999, 106.482], "end": [80.58, 106.482], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "TC1", "thickness": 0.09999999999999999, "pos": [67.564, 100.96499999999999], "height": 0.7}, {"start": [72.64399999999999, 106.553], "end": [62.483999999999995, 106.553], "type": "segment", "width": 0.12}, {"start": [72.64399999999999, 107.823], "end": [72.64399999999999, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [72.64399999999999, 100.20299999999999], "end": [62.483999999999995, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [62.483999999999995, 100.20299999999999], "end": [62.483999999999995, 107.823], "type": "segment", "width": 0.12}, {"start": [62.483999999999995, 107.823], "end": [72.64399999999999, 107.823], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C7", "thickness": 0.09999999999999999, "pos": [42.672, 87.328333], "height": 0.7}, {"start": [43.692, 91.551], "end": [43.692, 89.551], "type": "segment", "width": 0.12}, {"start": [41.652, 89.551], "end": [41.652, 91.551], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C8", "thickness": 0.09999999999999999, "pos": [45.085, 87.328333], "height": 0.7}, {"start": [44.065, 89.551], "end": [44.065, 91.551], "type": "segment", "width": 0.12}, {"start": [46.105, 91.551], "end": [46.105, 89.551], "type": "segment", "width": 0.12}, {"width": 0.65, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "C10", "thickness": 0.09999999999999999, "pos": [53.467, 92.964], "height": 0.65}, {"start": [54.339999999999996, 91.944], "end": [52.339999999999996, 91.944], "type": "segment", "width": 0.12}, {"start": [52.339999999999996, 93.984], "end": [54.339999999999996, 93.984], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "D2", "thickness": 0.09999999999999999, "pos": [51.815999999999995, 96.45649999999999], "height": 0.7}, {"start": [50.815999999999995, 98.59299999999999], "end": [52.815999999999995, 98.59299999999999], "type": "segment", "width": 0.12}, {"start": [52.815999999999995, 98.59299999999999], "end": [52.815999999999995, 94.743], "type": "segment", "width": 0.12}, {"start": [50.815999999999995, 98.59299999999999], "end": [50.815999999999995, 94.743], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "L1", "thickness": 0.09999999999999999, "pos": [54.864, 99.12349999999999], "height": 0.7}, {"start": [53.263999999999996, 98.274], "end": [53.263999999999996, 95.274], "type": "segment", "width": 0.12}, {"start": [56.464, 98.274], "end": [56.464, 95.274], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "U7", "thickness": 0.09999999999999999, "pos": [59.817, 89.66199999999999], "height": 0.7}, {"start": [58.916999999999994, 93.55799999999999], "end": [60.717, 93.55799999999999], "type": "segment", "width": 0.12}, {"start": [60.717, 90.338], "end": [58.266999999999996, 90.338], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 90.0, "attr": [], "horiz_justify": 0, "text": "U6", "thickness": 0.09999999999999999, "pos": [48.641, 93.59899999999999], "height": 0.7}, {"start": [49.541, 91.98899999999999], "end": [47.741, 91.98899999999999], "type": "segment", "width": 0.12}, {"start": [47.741, 95.20899999999999], "end": [50.190999999999995, 95.20899999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "U1", "thickness": 0.09999999999999999, "pos": [89.408, 95.994], "height": 0.7}, {"start": [91.633, 88.244], "end": [87.18299999999999, 88.244], "type": "segment", "width": 0.15}, {"start": [93.158, 95.14399999999999], "end": [87.18299999999999, 95.14399999999999], "type": "segment", "width": 0.15}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "D1", "thickness": 0.09999999999999999, "pos": [81.28, 98.9965], "height": 0.7}, {"start": [82.03999999999999, 102.79899999999999], "end": [82.03999999999999, 101.869], "type": "segment", "width": 0.12}, {"start": [82.03999999999999, 99.639], "end": [82.03999999999999, 100.56899999999999], "type": "segment", "width": 0.12}, {"start": [82.03999999999999, 99.639], "end": [79.88, 99.639], "type": "segment", "width": 0.12}, {"start": [82.03999999999999, 102.79899999999999], "end": [80.58, 102.79899999999999], "type": "segment", "width": 0.12}, {"width": 0.7, "angle": 0.0, "attr": [], "horiz_justify": 0, "text": "J1", "thickness": 0.09999999999999999, "pos": [32.004, 98.93299999999999], "height": 0.7}, {"start": [37.083999999999996, 106.553], "end": [26.924, 106.553], "type": "segment", "width": 0.12}, {"start": [37.083999999999996, 107.823], "end": [37.083999999999996, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [37.083999999999996, 100.20299999999999], "end": [26.924, 100.20299999999999], "type": "segment", "width": 0.12}, {"start": [26.924, 100.20299999999999], "end": [26.924, 107.823], "type": "segment", "width": 0.12}, {"start": [26.924, 107.823], "end": [37.083999999999996, 107.823], "type": "segment", "width": 0.12}]}, "edges_bbox": {"minx": 19.924999, "miny": 59.924999, "maxx": 100.075001, "maxy": 110.075001}, "metadata": {"date": "2019-02-02 01:32:44", "company": "", "revision": "", "title": "Thermostat_V1"}}
///////////////////////////////////////////////

///////////////////////////////////////////////
/* Utility functions */

var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
  pcbdata.metadata.revision + '__';
var storage;

function initStorage(key) {
  try {
    window.localStorage.getItem("blank");
    storage = window.localStorage;
  } catch (e) {
    // localStorage not available
  }
  if (!storage) {
    try {
      window.sessionStorage.getItem("blank");
      storage = window.sessionStorage;
    } catch (e) {
      // sessionStorage also not available
    }
  }
}

function readStorage(key) {
  if (storage) {
    return storage.getItem(storagePrefix + '#' + key);
  } else {
    return null;
  }
}

function writeStorage(key, value) {
  if (storage) {
    storage.setItem(storagePrefix + '#' + key, value);
  }
}

function fancyDblClickHandler(el, onsingle, ondouble) {
  return function() {
    if (el.getAttribute("data-dblclick") == null) {
      el.setAttribute("data-dblclick", 1);
      setTimeout(function() {
        if (el.getAttribute("data-dblclick") == 1) {
          onsingle();
        }
        el.removeAttribute("data-dblclick");
      }, 200);
    } else {
      el.removeAttribute("data-dblclick");
      ondouble();
    }
  }
}

function smoothScrollToRow(rowid) {
  document.getElementById(rowid).scrollIntoView({
    behavior: "smooth",
    block: "center",
    inline: "nearest"
  });
}

function focusInputField(input) {
  input.scrollIntoView(false);
  input.focus();
  input.select();
}

function copyToClipboard() {
  var text = '';
  for (var node of bomhead.childNodes[0].childNodes) {
    if (node.firstChild) {
      text = text + node.firstChild.nodeValue;
    }
    if (node != bomhead.childNodes[0].lastChild) {
      text += '\t';
    }
  }
  text += '\n';
  for (var row of bombody.childNodes) {
    for (var cell of row.childNodes) {
      for (var node of cell.childNodes) {
        if (node.nodeName == "INPUT") {
          if (node.checked) {
            text = text + '✓';
          }
        } else if (node.nodeName == "MARK") {
          text = text + node.firstChild.nodeValue;
        } else {
          text = text + node.nodeValue;
        }
      }
      if (cell != row.lastChild) {
        text += '\t';
      }
    }
    text += '\n';
  }
  var textArea = document.createElement("textarea");
  textArea.classList.add('clipboard-temp');
  textArea.value = text;

  document.body.appendChild(textArea);
  textArea.focus();
  textArea.select();

  try {
    if (document.execCommand('copy')) {
      console.log('Bom copied to clipboard.');
    }
  } catch (err) {
    console.log('Can not copy to clipboard.');
  }

  document.body.removeChild(textArea);
}

function removeGutterNode(node) {
  for (var i = 0; i < node.childNodes.length; i++) {
    if (node.childNodes[i].classList &&
      node.childNodes[i].classList.contains("gutter")) {
      node.removeChild(node.childNodes[i]);
      break;
    }
  }
}

function cleanGutters() {
  removeGutterNode(document.getElementById("bot"));
  removeGutterNode(document.getElementById("canvasdiv"));
}

var units = {
  prefixes: {
    giga: ["G", "g", "giga", "Giga", "GIGA"],
    mega: ["M", "mega", "Mega", "MEGA"],
    kilo: ["K", "k", "kilo", "Kilo", "KILO"],
    milli: ["m", "milli", "Milli", "MILLI"],
    micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
    nano: ["N", "n", "nano", "Nano", "NANO"],
    pico: ["P", "p", "pico", "Pico", "PICO"],
  },
  unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
  unitsLong: [
    "OHM", "Ohm", "ohm", "ohms",
    "FARAD", "Farad", "farad",
    "HENRY", "Henry", "henry"
  ],
  getMultiplier: function(s) {
    if (this.prefixes.giga.includes(s)) return 1e9;
    if (this.prefixes.mega.includes(s)) return 1e6;
    if (this.prefixes.kilo.includes(s)) return 1e3;
    if (this.prefixes.milli.includes(s)) return 1e-3;
    if (this.prefixes.micro.includes(s)) return 1e-6;
    if (this.prefixes.nano.includes(s)) return 1e-9;
    if (this.prefixes.pico.includes(s)) return 1e-12;
    return 1;
  },
  valueRegex: null,
}

function initUtils() {
  var allPrefixes = units.prefixes.giga
                    .concat(units.prefixes.mega)
                    .concat(units.prefixes.kilo)
                    .concat(units.prefixes.milli)
                    .concat(units.prefixes.micro)
                    .concat(units.prefixes.nano)
                    .concat(units.prefixes.pico);
  var allUnits = units.unitsShort.concat(units.unitsLong);
  units.valueRegex = new RegExp("^([0-9\.]+)" +
                         "\\s*(" + allPrefixes.join("|") + ")?" +
                         "(" + allUnits.join("|") + ")?" +
                         "(\\b.*)?$", "");
  units.valueAltRegex = new RegExp("^([0-9]*)" +
                         "(" + units.unitsShort.join("|") + ")?" +
                         "([GgMmKkUuNnPp])?" +
                         "([0-9]*)" +
                         "(\\b.*)?$", "");
  for (var bomtable of Object.values(pcbdata.bom)) {
    for (var row of bomtable) {
      row.push(parseValue(row[1], row[3][0][0]));
    }
  }
}

function parseValue(val, ref) {
  var inferUnit = (unit, ref) => {
    if (unit) {
      unit = unit.toLowerCase();
      if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
        unit = 'r';
      }
      unit = unit[0];
    } else {
      ref = /^([a-z]+)\d+$/i.exec(ref);
      if (ref) {
        ref = ref[1].toLowerCase();
        if (ref == "c") unit = 'f';
        else if (ref == "l") unit = 'h';
        else if (ref == "r" || ref == "rv") unit = 'r';
        else unit = null;
      }
    }
    return unit;
  };
  val = val.replace(/,/g, "");
  var match = units.valueRegex.exec(val);
  var unit;
  if (match) {
    val = parseFloat(match[1]);
    if (match[2]) {
      val = val * units.getMultiplier(match[2]);
    }
    unit = inferUnit(match[3], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[4],
    }
  }
  match = units.valueAltRegex.exec(val);
  if (match && (match[1] || match[4])) {
    val = parseFloat(match[1] + "." + match[4]);
    if (match[3]) {
      val = val * units.getMultiplier(match[3]);
    }
    unit = inferUnit(match[2], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[5],
    }
  }
  return null;
}

function valueCompare(a, b, stra, strb) {
  if (a === null && b === null) {
    // Failed to parse both values, compare them as strings.
    if (stra != strb) return stra > strb ? 1 : -1;
    else return 0;
  } else if (a === null) {
    return 1;
  } else if (b === null) {
    return -1;
  } else {
    if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
    else if (a.val != b.val) return a.val > b.val ? 1 : -1;
    else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
    else return 0;
  }
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/* PCB rendering code */

var redrawOnDrag = true;
var boardRotation = 0;

function deg2rad(deg) {
  return deg * Math.PI / 180;
}

function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
  var point = [
    linepoint[0] * text.width + offsetx,
    linepoint[1] * text.height + offsety
  ];
  // Adding half a line height here is technically a bug
  // but pcbnew currently does the same, text is slightly shifted.
  point[0] -= (point[1] + text.height * 0.5) * tilt;
  return point;
}

function drawtext(ctx, text, color, flip) {
  ctx.save();
  ctx.translate(...text.pos);
  var angle = -text.angle;
  if (text.attr.includes("mirrored")) {
    ctx.scale(-1, 1);
    angle = -angle;
  }
  var tilt = 0;
  if (text.attr.includes("italic")) {
    tilt = 0.125;
  }
  var interline = (text.height * 1.5 + text.thickness) / 2;
  var txt = text.text.split("\n");
  // KiCad ignores last empty line.
  if (txt[txt.length-1] == '') txt.pop();
  ctx.rotate(deg2rad(angle));
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  ctx.lineWidth = text.thickness;
  for (var i in txt) {
    var offsety = (-(txt.length - 1) + i * 2) * interline + text.height / 2;
    var lineWidth = 0;
    for (var c of txt[i]) {
      lineWidth += pcbdata.font_data[c].w * text.width;
    }
    var offsetx = 0;
    switch (text.horiz_justify) {
      case -1:
        // Justify left, do nothing
        break;
      case 0:
        // Justify center
        offsetx -= lineWidth / 2;
        break;
      case 1:
        // Justify right
        offsetx -= lineWidth;
        break;
    }
    for (var c of txt[i]) {
      for (var line of pcbdata.font_data[c].l) {
        // Drawing each segment separately instead of
        // polyline because round line caps don't work in joints
        for (var i = 0; i < line.length - 1; i++) {
          ctx.beginPath();
          ctx.moveTo(...calcFontPoint(line[i], text, offsetx, offsety, tilt));
          ctx.lineTo(...calcFontPoint(line[i + 1], text, offsetx, offsety, tilt));
          ctx.stroke();
        }
      }
      offsetx += pcbdata.font_data[c].w * text.width;
    }
  }
  ctx.restore();
}

function drawedge(ctx, scalefactor, edge, color) {
  ctx.strokeStyle = color;
  ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
  ctx.lineCap = "round";
  if (edge.type == "segment") {
    ctx.beginPath();
    ctx.moveTo(...edge.start);
    ctx.lineTo(...edge.end);
    ctx.stroke();
  }
  if (edge.type == "arc") {
    ctx.beginPath();
    ctx.arc(
      ...edge.start,
      edge.radius,
      deg2rad(edge.startangle),
      deg2rad(edge.endangle));
    ctx.stroke();
  }
  if (edge.type == "circle") {
    ctx.beginPath();
    ctx.arc(
      ...edge.start,
      edge.radius,
      0, 2 * Math.PI);
    ctx.closePath();
    ctx.stroke();
  }
}

function drawRoundRect(ctx, color, size, radius, ctxmethod) {
  ctx.beginPath();
  ctx.strokeStyle = color;
  var x = size[0] * -0.5;
  var y = size[1] * -0.5;
  var width = size[0];
  var height = size[1];
  ctx.moveTo(x, 0);
  ctx.arcTo(x, y + height, x + width, y + height, radius);
  ctx.arcTo(x + width, y + height, x + width, y, radius);
  ctx.arcTo(x + width, y, x, y, radius);
  ctx.arcTo(x, y, x, y + height, radius);
  ctx.closePath();
  ctxmethod();
}

function drawOblong(ctx, color, size, ctxmethod) {
  drawRoundRect(ctx, color, size, Math.min(size[0], size[1]) / 2, ctxmethod);
}

function drawPolygons(ctx, color, polygons, ctxmethod) {
  ctx.fillStyle = color;
  for (var polygon of polygons) {
    ctx.beginPath();
    for (var vertex of polygon) {
      ctx.lineTo(...vertex)
    }
    ctx.closePath();
    ctxmethod();
  }
}

function drawPolygonShape(ctx, shape, color) {
  ctx.save();
  ctx.translate(...shape.pos);
  ctx.rotate(deg2rad(-shape.angle));
  drawPolygons(ctx, color, shape.polygons, ctx.fill.bind(ctx));
  ctx.restore();
}

function drawDrawing(ctx, layer, scalefactor, drawing, color) {
  if (["segment", "arc", "circle"].includes(drawing.type)) {
    drawedge(ctx, scalefactor, drawing, color);
  } else if (drawing.type == "polygon") {
    drawPolygonShape(ctx, drawing, color);
  } else {
    drawtext(ctx, drawing, color, layer == "B");
  }
}

function drawCircle(ctx, radius, ctxmethod) {
  ctx.beginPath();
  ctx.arc(0, 0, radius, 0, 2 * Math.PI);
  ctx.closePath();
  ctxmethod();
}

function drawPad(ctx, pad, color, outline) {
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(deg2rad(pad.angle));
  if (pad.offset) {
    ctx.translate(...pad.offset);
  }
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  var ctxmethod = outline ? ctx.stroke.bind(ctx) : ctx.fill.bind(ctx);
  if (pad.shape == "rect") {
    var rect = [...pad.size.map(c => -c * 0.5), ...pad.size];
    if (outline) {
      ctx.strokeRect(...rect);
    } else {
      ctx.fillRect(...rect);
    }
  } else if (pad.shape == "oval") {
    drawOblong(ctx, color, pad.size, ctxmethod);
  } else if (pad.shape == "circle") {
    drawCircle(ctx, pad.size[0] / 2, ctxmethod);
  } else if (pad.shape == "roundrect") {
    drawRoundRect(ctx, color, pad.size, pad.radius, ctxmethod);
  } else if (pad.shape == "custom") {
    drawPolygons(ctx, color, pad.polygons, ctxmethod);
  }
  if (pad.type == "th" && !outline) {
    ctx.fillStyle = "#CCCCCC";
    if (pad.drillshape == "oblong") {
      drawOblong(ctx, "#CCCCCC", pad.drillsize, ctxmethod);
    } else {
      drawCircle(ctx, pad.drillsize[0] / 2, ctxmethod);
    }
  }
  ctx.restore();
}

function drawModule(ctx, layer, scalefactor, module, padcolor, outlinecolor, highlight) {
  if (highlight) {
    // draw bounding box
    if (module.layer == layer) {
      ctx.save();
      ctx.globalAlpha = 0.2;
      ctx.translate(...module.bbox.pos);
      ctx.fillStyle = padcolor;
      ctx.fillRect(
        0, 0,
        ...module.bbox.size);
      ctx.globalAlpha = 1;
      ctx.strokeStyle = padcolor;
      ctx.strokeRect(
        0, 0,
        ...module.bbox.size);
      ctx.restore();
    }
  }
  // draw drawings
  for (var drawing of module.drawings) {
    if (drawing.layer == layer) {
      drawDrawing(ctx, layer, scalefactor, drawing.drawing, padcolor);
    }
  }
  // draw pads
  for (var pad of module.pads) {
    if (pad.layers.includes(layer)) {
      drawPad(ctx, pad, padcolor, false);
      if (pad.pin1 && highlightpin1) {
        drawPad(ctx, pad, outlinecolor, true);
      }
    }
  }
}

function drawEdges(canvas, scalefactor) {
  var ctx = canvas.getContext("2d");
  var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
  for (var edge of pcbdata.edges) {
    drawedge(ctx, scalefactor, edge, edgecolor);
  }
}

function drawModules(canvas, layer, scalefactor, highlight) {
  var ctx = canvas.getContext("2d");
  ctx.lineWidth = 3 / scalefactor;
  var style = getComputedStyle(topmostdiv);
  var padcolor = style.getPropertyValue('--pad-color');
  var outlinecolor = style.getPropertyValue('--pin1-outline-color');
  if (highlight > 0) {
    padcolor = style.getPropertyValue('--pad-color-highlight');
    outlinecolor = style.getPropertyValue('--pin1-outline-color-highlight');
  }
  for (var i = 0; i < pcbdata.modules.length; i++) {
    var mod = pcbdata.modules[i];
    if (!highlight || highlightedModules.includes(i)) {
      drawModule(ctx, layer, scalefactor, mod, padcolor, outlinecolor, highlight);
    }
  }
}

function drawSilkscreen(canvas, layer, scalefactor) {
  var ctx = canvas.getContext("2d");
  for (var d of pcbdata.silkscreen[layer]) {
    if (["segment", "arc", "circle"].includes(d.type)) {
      drawedge(ctx, scalefactor, d, "#aa4");
    } else if (d.type == "polygon") {
      drawPolygonShape(ctx, d, "#4aa");
    } else {
      drawtext(ctx, d, "#4aa", layer == "B");
    }
  }
}

function clearCanvas(canvas) {
  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.restore();
}

function drawHighlightsOnLayer(canvasdict) {
  clearCanvas(canvasdict.highlight);
  drawModules(canvasdict.highlight, canvasdict.layer,
    canvasdict.transform.s * canvasdict.transform.zoom, true);
}

function drawHighlights() {
  drawHighlightsOnLayer(allcanvas.front);
  drawHighlightsOnLayer(allcanvas.back);
}

function drawBackground(canvasdict) {
  clearCanvas(canvasdict.bg);
  clearCanvas(canvasdict.silk);
  drawEdges(canvasdict.bg, canvasdict.transform.s);
  drawModules(canvasdict.bg, canvasdict.layer,
    canvasdict.transform.s * canvasdict.transform.zoom, false);
  drawSilkscreen(canvasdict.silk, canvasdict.layer, canvasdict.transform.s);
}

function prepareCanvas(canvas, flip, transform) {
  var ctx = canvas.getContext("2d");
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  var fontsize = 1.55;
  ctx.scale(transform.zoom, transform.zoom);
  ctx.translate(transform.panx, transform.pany);
  if (flip) {
    ctx.scale(-1, 1);
  }
  ctx.translate(transform.x, transform.y);
  ctx.rotate(deg2rad(boardRotation));
  ctx.scale(transform.s, transform.s);
}

function prepareLayer(canvasdict) {
  var flip = (canvasdict.layer == "B");
  for (var c of ["bg", "silk", "highlight"]) {
    prepareCanvas(canvasdict[c], flip, canvasdict.transform);
  }
}

function rotateVector(v, angle) {
  angle = deg2rad(angle);
  return [
    v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
    v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
  ];
}

function applyRotation(bbox) {
  var corners = [
    [bbox.minx, bbox.miny],
    [bbox.minx, bbox.maxy],
    [bbox.maxx, bbox.miny],
    [bbox.maxx, bbox.maxy],
  ];
  corners = corners.map((v) => rotateVector(v, boardRotation));
  return {
    minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
    miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
    maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
    maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
  }
}

function recalcLayerScale(canvasdict) {
  var canvasdivid = {
    "F": "frontcanvas",
    "B": "backcanvas"
  } [canvasdict.layer];
  var width = document.getElementById(canvasdivid).clientWidth * 2;
  var height = document.getElementById(canvasdivid).clientHeight * 2;
  var bbox = applyRotation(pcbdata.edges_bbox);
  var scalefactor = 0.98 * Math.min(
    width / (bbox.maxx - bbox.minx),
    height / (bbox.maxy - bbox.miny)
  );
  if (scalefactor < 0.1) {
    scalefactor = 1;
  }
  canvasdict.transform.s = scalefactor;
  var flip = (canvasdict.layer == "B");
  if (flip) {
    canvasdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
  } else {
    canvasdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
  }
  canvasdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
  for (var c of ["bg", "silk", "highlight"]) {
    canvas = canvasdict[c];
    canvas.width = width;
    canvas.height = height;
    canvas.style.width = (width / 2) + "px";
    canvas.style.height = (height / 2) + "px";
  }
}

function redrawCanvas(layerdict) {
  prepareLayer(layerdict);
  drawBackground(layerdict);
  drawHighlightsOnLayer(layerdict);
}

function resizeCanvas(layerdict) {
  recalcLayerScale(layerdict);
  redrawCanvas(layerdict);
}

function resizeAll() {
  resizeCanvas(allcanvas.front);
  resizeCanvas(allcanvas.back);
}

function bboxScan(layer, x, y) {
  var result = [];
  for (var i = 0; i < pcbdata.modules.length; i++) {
    var module = pcbdata.modules[i];
    if (module.layer == layer) {
      var b = module.bbox;
      if (b.pos[0] <= x && b.pos[0] + b.size[0] >= x &&
        b.pos[1] <= y && b.pos[1] + b.size[1] >= y) {
        result.push(i);
      }
    }
  }
  return result;
}

function handleMouseDown(e, layerdict) {
  if (e.which != 1) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();
  layerdict.transform.mousestartx = e.offsetX;
  layerdict.transform.mousestarty = e.offsetY;
  layerdict.transform.mousedownx = e.offsetX;
  layerdict.transform.mousedowny = e.offsetY;
  layerdict.transform.mousedown = true;
}

function handleMouseClick(e, layerdict) {
  var x = e.offsetX;
  var y = e.offsetY;
  var t = layerdict.transform;
  if (layerdict.layer == "B") {
    x = (2 * x / t.zoom - t.panx + t.x) / -t.s;
  } else {
    x = (2 * x / t.zoom - t.panx - t.x) / t.s;
  }
  y = (2 * y / t.zoom - t.y - t.pany) / t.s;
  var v = rotateVector([x, y], -boardRotation);
  var modules = bboxScan(layerdict.layer, v[0], v[1]);
  if (modules.length > 0) {
    modulesClicked(modules);
  }
}

function handleMouseUp(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();
  if (e.which == 1 &&
    layerdict.transform.mousedown &&
    layerdict.transform.mousedownx == e.offsetX &&
    layerdict.transform.mousedowny == e.offsetY) {
    // This is just a click
    handleMouseClick(e, layerdict);
    layerdict.transform.mousedown = false;
    return;
  }
  if (e.which == 3) {
    // Reset pan and zoom on right click.
    layerdict.transform.panx = 0;
    layerdict.transform.pany = 0;
    layerdict.transform.zoom = 1;
    redrawCanvas(layerdict);
  } else if (!redrawOnDrag) {
    redrawCanvas(layerdict);
  }
  layerdict.transform.mousedown = false;
}

function handleMouseMove(e, layerdict) {
  if (!layerdict.transform.mousedown) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();
  var dx = e.offsetX - layerdict.transform.mousestartx;
  var dy = e.offsetY - layerdict.transform.mousestarty;
  layerdict.transform.panx += 2 * dx / layerdict.transform.zoom;
  layerdict.transform.pany += 2 * dy / layerdict.transform.zoom;
  layerdict.transform.mousestartx = e.offsetX;
  layerdict.transform.mousestarty = e.offsetY;
  if (redrawOnDrag) {
    redrawCanvas(layerdict);
  }
}

function handleMouseWheel(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();
  var t = layerdict.transform;
  var wheeldelta = e.deltaY;
  if (e.deltaMode == 1) {
    // FF only, scroll by lines
    wheeldelta *= 30;
  } else if (e.deltaMode == 2) {
    wheeldelta *= 300;
  }
  var m = Math.pow(1.1, -wheeldelta / 40);
  // Limit amount of zoom per tick.
  if (m > 2) {
    m = 2;
  } else if (m < 0.5) {
    m = 0.5;
  }
  t.zoom *= m;
  var zoomd = (1 - m) / t.zoom;
  t.panx += 2 * e.offsetX * zoomd;
  t.pany += 2 * e.offsetY * zoomd;
  redrawCanvas(layerdict);
}

function addMouseHandlers(div, layerdict) {
  div.onmousedown = function(e) {
    handleMouseDown(e, layerdict);
  };
  div.onmousemove = function(e) {
    handleMouseMove(e, layerdict);
  };
  div.onmouseup = function(e) {
    handleMouseUp(e, layerdict);
  };
  div.onmouseout = function(e) {
    handleMouseUp(e, layerdict);
  }
  div.onwheel = function(e) {
    handleMouseWheel(e, layerdict);
  }
  for (var element of [div, layerdict.bg, layerdict.silk, layerdict.highlight]) {
    element.addEventListener("contextmenu", function(e) {
      e.preventDefault();
    }, false);
  }
}

function setRedrawOnDrag(value) {
  redrawOnDrag = value;
  writeStorage("redrawOnDrag", value);
}

function setBoardRotation(value) {
  boardRotation = value * 5;
  writeStorage("boardRotation", boardRotation);
  document.getElementById("rotationDegree").textContent = boardRotation;
  resizeAll();
}

function initRender() {
  allcanvas = {
    front: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
        mousestartx: 0,
        mousestarty: 0,
        mousedown: false,
      },
      bg: document.getElementById("F_bg"),
      silk: document.getElementById("F_slk"),
      highlight: document.getElementById("F_hl"),
      layer: "F",
    },
    back: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
        mousestartx: 0,
        mousestarty: 0,
        mousedown: false,
      },
      bg: document.getElementById("B_bg"),
      silk: document.getElementById("B_slk"),
      highlight: document.getElementById("B_hl"),
      layer: "B",
    }
  };
  addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
  addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/* DOM manipulation and misc code */

var bomsplit;
var canvassplit;
var canvaslayout = "default";
var bomlayout = "default";
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var highlightedModules = [];
var checkboxes = [];
var bomCheckboxes = "";
var highlightpin1 = false;
var lastClicked;

function dbg(html) {
  dbgdiv.innerHTML = html;
}

function setDarkMode(value) {
  if (value) {
    topmostdiv.classList.add("dark");
  } else {
    topmostdiv.classList.remove("dark");
  }
  writeStorage("darkmode", value);
  if (initDone) {
    redrawCanvas(allcanvas.front);
    redrawCanvas(allcanvas.back);
  }
}

function setHighlightPin1(value) {
  writeStorage("highlightpin1", value);
  highlightpin1 = value;
  if (initDone) {
    redrawCanvas(allcanvas.front);
    redrawCanvas(allcanvas.back);
  }
}

function getStoredCheckboxRefs(checkbox) {
  function convert(ref) {
    var intref = parseInt(ref);
    if (isNaN(intref)) {
      for (var i = 0; i < pcbdata.modules.length; i++) {
        if (pcbdata.modules[i].ref == ref) {
          return i;
        }
      }
      return -1;
    } else {
      return intref;
    }
  }
  var existingRefs = readStorage("checkbox_" + checkbox);
  if (!existingRefs) {
    return new Set();
  } else {
    return new Set(existingRefs.split(",").map(r => convert(r)));
  }
}

function getCheckboxState(checkbox, references) {
  var storedRefsSet = getStoredCheckboxRefs(checkbox);
  var currentRefsSet = new Set(references.map(r => r[1]));
  // Get difference of current - stored
  var difference = new Set(currentRefsSet);
  for (ref of storedRefsSet) {
    difference.delete(ref);
  }
  if (difference.size == 0) {
    // All the current refs are stored
    return "checked";
  } else if (difference.size == currentRefsSet.size) {
    // None of the current refs are stored
    return "unchecked";
  } else {
    // Some of the refs are stored
    return "indeterminate";
  }
}

function setBomCheckboxState(checkbox, element, references) {
  var state = getCheckboxState(checkbox, references);
  element.checked = (state == "checked");
  element.indeterminate = (state == "indeterminate");
}

function createCheckboxChangeHandler(checkbox, references) {
  return function() {
    refsSet = getStoredCheckboxRefs(checkbox);
    if (this.checked) {
      // checkbox ticked
      for (var ref of references) {
        refsSet.add(ref[1]);
      }
    } else {
      // checkbox unticked
      for (var ref of references) {
        refsSet.delete(ref[1]);
      }
    }
    writeStorage("checkbox_" + checkbox, [...refsSet].join(","));
  }
}

function createRowHighlightHandler(rowid, refs) {
  return function() {
    if (currentHighlightedRowId) {
      if (currentHighlightedRowId == rowid) {
        return;
      }
      document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    }
    document.getElementById(rowid).classList.add("highlighted");
    currentHighlightedRowId = rowid;
    highlightedModules = refs.map(r => r[1]);
    drawHighlights();
  }
}

function entryMatches(entry) {
  // check refs
  for (var ref of entry[3]) {
    if (ref[0].toLowerCase().indexOf(filter) >= 0) {
      return true;
    }
  }
  // check extra fields
  for (var i in config.extra_fields) {
    if (entry[4][i].toLowerCase().indexOf(filter) >= 0) {
      return true;
    }
  }
  // check value
  if (entry[1].toLowerCase().indexOf(filter) >= 0) {
    return true;
  }
  // check footprint
  if (entry[2].toLowerCase().indexOf(filter) >= 0) {
    return true;
  }
  return false;
}

function findRefInEntry(entry) {
  return entry[3].filter(r => r[0].toLowerCase() == reflookup);
}

function highlightFilter(s) {
  if (!filter) {
    return s;
  }
  var parts = s.toLowerCase().split(filter);
  if (parts.length == 1) {
    return s;
  }
  var r = "";
  var pos = 0;
  for (var i in parts) {
    if (i > 0) {
      r += '<mark class="highlight">' +
        s.substring(pos, pos + filter.length) +
        '</mark>';
      pos += filter.length;
    }
    r += s.substring(pos, pos + parts[i].length);
    pos += parts[i].length;
  }
  return r;
}

function checkboxSetUnsetAllHandler(checkboxname) {
  return function() {
    var checkboxnum = 0;
    while (checkboxnum < checkboxes.length &&
      checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
      checkboxnum++;
    }
    if (checkboxnum >= checkboxes.length) {
      return;
    }
    var allset = true;
    var checkbox;
    var row;
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      if (!checkbox.checked || checkbox.indeterminate) {
        allset = false;
        break;
      }
    }
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      checkbox.checked = !allset;
      checkbox.indeterminate = false;
      checkbox.onchange();
    }
  }
}

function createColumnHeader(name, cls, comparator) {
  var th = document.createElement("TH");
  th.innerHTML = name;
  th.classList.add(cls);
  th.style.cursor = "pointer";
  var span = document.createElement("SPAN");
  span.classList.add("sortmark");
  span.classList.add("none");
  th.appendChild(span);
  th.onclick = function() {
    if (currentSortColumn && this !== currentSortColumn) {
      // Currently sorted by another column
      currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
      currentSortColumn.childNodes[1].classList.add("none");
      currentSortColumn = null;
      currentSortOrder = null;
    }
    if (currentSortColumn && this === currentSortColumn) {
      // Already sorted by this column
      if (currentSortOrder == "asc") {
        // Sort by this column, descending order
        bomSortFunction = function(a, b) {
          return -comparator(a, b);
        }
        currentSortColumn.childNodes[1].classList.remove("asc");
        currentSortColumn.childNodes[1].classList.add("desc");
        currentSortOrder = "desc";
      } else {
        // Unsort
        bomSortFunction = null;
        currentSortColumn.childNodes[1].classList.remove("desc");
        currentSortColumn.childNodes[1].classList.add("none");
        currentSortColumn = null;
        currentSortOrder = null;
      }
    } else {
      // Sort by this column, ascending order
      bomSortFunction = comparator;
      currentSortColumn = this;
      currentSortColumn.childNodes[1].classList.remove("none");
      currentSortColumn.childNodes[1].classList.add("asc");
      currentSortOrder = "asc";
    }
    populateBomBody();
  }
  return th;
}

function populateBomHeader() {
  while (bomhead.firstChild) {
    bomhead.removeChild(bomhead.firstChild);
  }
  var tr = document.createElement("TR");
  var th = document.createElement("TH");
  th.classList.add("numCol");
  tr.appendChild(th);
  checkboxes = bomCheckboxes.split(",").filter((e) => e);
  var checkboxCompareClosure = function(checkbox) {
    return (a, b) => {
      var stateA = getCheckboxState(checkbox, a[3]);
      var stateB = getCheckboxState(checkbox, b[3]);
      if (stateA > stateB) return -1;
      if (stateA < stateB) return 1;
      return 0;
    }
  }
  for (var checkbox of checkboxes) {
    th = createColumnHeader(
      checkbox, "bom-checkbox", checkboxCompareClosure(checkbox));
    th.onclick = fancyDblClickHandler(
      th, th.onclick.bind(th), checkboxSetUnsetAllHandler(checkbox));
    tr.appendChild(th);
  }
  tr.appendChild(createColumnHeader("References", "References", (a, b) => {
    var i = 0;
    while (i < a[3].length && i < b[3].length) {
      if (a[3][i] != b[3][i]) return a[3][i] > b[3][i] ? 1 : -1;
      i++;
    }
    return a[3].length - b[3].length;
  }));
  // Extra fields
  if (config.extra_fields.length > 0) {
    var extraFieldCompareClosure = function(fieldIndex) {
      return (a, b) => {
        var fa = a[4][fieldIndex];
        var fb = b[4][fieldIndex];
        if (fa != fb) return fa > fb ? 1 : -1;
        else return 0;
      }
    }
    for (var i in config.extra_fields) {
      tr.appendChild(createColumnHeader(
        config.extra_fields[i], "extra", extraFieldCompareClosure(i)));
    }
  }
  tr.appendChild(createColumnHeader("Value", "Value", (a, b) => {
    return valueCompare(a[5], b[5], a[1], b[1]);
  }));
  tr.appendChild(createColumnHeader("Footprint", "Footprint", (a, b) => {
    if (a[2] != b[2]) return a[2] > b[2] ? 1 : -1;
    else return 0;
  }));
  tr.appendChild(createColumnHeader("Quantity", "Quantity", (a, b) => {
    return a[3].length - b[3].length;
  }));
  bomhead.appendChild(tr);
}

function populateBomBody() {
  while (bom.firstChild) {
    bom.removeChild(bom.firstChild);
  }
  highlightHandlers = [];
  currentHighlightedRowId = null;
  var first = true;
  switch (canvaslayout) {
    case 'F':
      bomtable = pcbdata.bom.F;
      break;
    case 'FB':
      bomtable = pcbdata.bom.both;
      break;
    case 'B':
      bomtable = pcbdata.bom.B;
      break;
  }
  if (bomSortFunction) {
    bomtable = bomtable.slice().sort(bomSortFunction);
  }
  for (var i in bomtable) {
    var bomentry = bomtable[i];
    if (filter && !entryMatches(bomentry)) {
      continue;
    }
    var references = bomentry[3];
    if (reflookup) {
      references = findRefInEntry(bomentry);
      if (references.length == 0) {
        continue;
      }
    }
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    var rownum = +i + 1;
    tr.id = "bomrow" + rownum;
    td.textContent = rownum;
    tr.appendChild(td);
    // Checkboxes
    for (var checkbox of checkboxes) {
      if (checkbox) {
        td = document.createElement("TD");
        var input = document.createElement("input");
        input.type = "checkbox";
        input.onchange = createCheckboxChangeHandler(checkbox, references);
        setBomCheckboxState(checkbox, input, references);
        td.appendChild(input);
        tr.appendChild(td);
      }
    }
    // References
    td = document.createElement("TD");
    td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
    tr.appendChild(td);
    // Extra fields
    for (var i in config.extra_fields) {
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(bomentry[4][i]);
      tr.appendChild(td);
    }
    // Value
    td = document.createElement("TD");
    td.innerHTML = highlightFilter(bomentry[1]);
    tr.appendChild(td);
    // Footprint
    td = document.createElement("TD");
    td.innerHTML = highlightFilter(bomentry[2]);
    tr.appendChild(td);
    // Quantity
    td = document.createElement("TD");
    td.textContent = bomentry[3].length;
    tr.appendChild(td);
    bom.appendChild(tr);
    var handler = createRowHighlightHandler(tr.id, references);
    tr.onmousemove = handler;
    highlightHandlers.push({
      id: tr.id,
      handler: handler,
      refs: references
    });
    if ((filter || reflookup) && first) {
      handler();
      first = false;
    }
  }
}

function highlightPreviousRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[highlightHandlers.length - 1].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[0].id == currentHighlightedRowId) {
      highlightHandlers[highlightHandlers.length - 1].handler();
    } else {
      for (var i = 0; i < highlightHandlers.length - 1; i++) {
        if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function highlightNextRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[0].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
      highlightHandlers[0].handler();
    } else {
      for (var i = 1; i < highlightHandlers.length; i++) {
        if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function populateBomTable() {
  populateBomHeader();
  populateBomBody();
}

function modulesClicked(moduleIndexes) {
  var lastClickedIndex = moduleIndexes.indexOf(lastClicked);
  var index = moduleIndexes[(lastClickedIndex + 1) % moduleIndexes.length];
  for (var handler of highlightHandlers) {
    if (handler.refs.map(r => r[1]).indexOf(index) >= 0) {
      lastClicked = index;
      handler.handler();
      smoothScrollToRow(currentHighlightedRowId);
      break;
    }
  }
}

function updateFilter(input) {
  filter = input.toLowerCase();
  populateBomTable();
}

function updateRefLookup(input) {
  reflookup = input.toLowerCase();
  populateBomTable();
}

function silkscreenVisible(visible) {
  if (visible) {
    allcanvas.front.silk.style.display = "";
    allcanvas.back.silk.style.display = "";
    writeStorage("silkscreenVisible", true);
  } else {
    allcanvas.front.silk.style.display = "none";
    allcanvas.back.silk.style.display = "none";
    writeStorage("silkscreenVisible", false);
  }
}

function changeCanvasLayout(layout) {
  document.getElementById("fl-btn").classList.remove("depressed");
  document.getElementById("fb-btn").classList.remove("depressed");
  document.getElementById("bl-btn").classList.remove("depressed");
  switch (layout) {
    case 'F':
      document.getElementById("fl-btn").classList.add("depressed");
      if (bomlayout != "bom-only") {
        canvassplit.collapse(1);
      }
      break;
    case 'B':
      document.getElementById("bl-btn").classList.add("depressed");
      if (bomlayout != "bom-only") {
        canvassplit.collapse(0);
      }
      break;
    default:
      document.getElementById("fb-btn").classList.add("depressed");
      if (bomlayout != "bom-only") {
        canvassplit.setSizes([50, 50]);
      }
  }
  canvaslayout = layout;
  writeStorage("canvaslayout", layout);
  resizeAll();
  populateBomTable();
}

function populateMetadata() {
  document.getElementById("title").innerHTML = pcbdata.metadata.title;
  document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
  document.getElementById("company").innerHTML = pcbdata.metadata.company;
  document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
  if (pcbdata.metadata.title != "") {
    document.title = pcbdata.metadata.title + " BOM";
  }
}

function changeBomLayout(layout) {
  document.getElementById("bom-btn").classList.remove("depressed");
  document.getElementById("lr-btn").classList.remove("depressed");
  document.getElementById("tb-btn").classList.remove("depressed");
  switch (layout) {
    case 'bom-only':
      document.getElementById("bom-btn").classList.add("depressed");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      document.getElementById("frontcanvas").style.display = "none";
      document.getElementById("backcanvas").style.display = "none";
      document.getElementById("bot").style.height = "";
      break;
    case 'top-bottom':
      document.getElementById("tb-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.remove("split-horizontal");
      document.getElementById("canvasdiv").classList.remove("split-horizontal");
      document.getElementById("frontcanvas").classList.add("split-horizontal");
      document.getElementById("backcanvas").classList.add("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        direction: "vertical",
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        onDragEnd: resizeAll
      });
      break;
    case 'left-right':
      document.getElementById("lr-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.add("split-horizontal");
      document.getElementById("canvasdiv").classList.add("split-horizontal");
      document.getElementById("frontcanvas").classList.remove("split-horizontal");
      document.getElementById("backcanvas").classList.remove("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        direction: "vertical",
        onDragEnd: resizeAll
      });
  }
  bomlayout = layout;
  writeStorage("bomlayout", layout);
  changeCanvasLayout(canvaslayout);
}

function focusFilterField() {
  focusInputField(document.getElementById("filter"));
}

function focusRefLookupField() {
  focusInputField(document.getElementById("reflookup"));
}

function toggleBomCheckbox(bomrowid, checkboxnum) {
  if (!bomrowid || checkboxnum > checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
  checkbox.checked = !checkbox.checked;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function checkBomCheckbox(bomrowid, checkboxname) {
  var checkboxnum = 0;
  while (checkboxnum < checkboxes.length &&
    checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
    checkboxnum++;
  }
  if (!bomrowid || checkboxnum >= checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
  checkbox.checked = true;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function setBomCheckboxes(value) {
  bomCheckboxes = value;
  writeStorage("bomCheckboxes", value);
  populateBomTable();
}

document.onkeydown = function(e) {
  switch (e.key) {
    case "n":
      if (document.activeElement.type == "text") {
        return;
      }
      if (currentHighlightedRowId !== null) {
        checkBomCheckbox(currentHighlightedRowId, "placed");
        highlightNextRow();
        e.preventDefault();
      }
      break;
    case "ArrowUp":
      highlightPreviousRow();
      e.preventDefault();
      break;
    case "ArrowDown":
      highlightNextRow();
      e.preventDefault();
      break;
    default:
      break;
  }
  if (e.altKey) {
    switch (e.key) {
      case "f":
        focusFilterField();
        e.preventDefault();
        break;
      case "r":
        focusRefLookupField();
        e.preventDefault();
        break;
      case "z":
        changeBomLayout("bom-only");
        e.preventDefault();
        break;
      case "x":
        changeBomLayout("left-right");
        e.preventDefault();
        break;
      case "c":
        changeBomLayout("top-bottom");
        e.preventDefault();
        break;
      case "v":
        changeCanvasLayout("F");
        e.preventDefault();
        break;
      case "b":
        changeCanvasLayout("FB");
        e.preventDefault();
        break;
      case "n":
        changeCanvasLayout("B");
        e.preventDefault();
        break;
      default:
        break;
    }
    if (e.key >= '1' && e.key <= '9') {
      toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
    }
  }
}

function initDefaults() {
  bomlayout = readStorage("bomlayout");
  if (bomlayout === null) {
    bomlayout = config.bom_view;
  }
  if (!['bom-only', 'left-right', 'top-bottom'].includes(bomlayout)) {
    bomlayout = config.bom_view;
  }
  canvaslayout = readStorage("canvaslayout");
  if (canvaslayout === null) {
    canvaslayout = config.layer_view;
  }
  bomCheckboxes = readStorage("bomCheckboxes");
  if (bomCheckboxes === null) {
    bomCheckboxes = config.checkboxes;
  }
  document.getElementById("bomCheckboxes").value = bomCheckboxes;

  var b = readStorage("silkscreenVisible");
  if (b === null) {
    b = config.show_silkscreen;
  }
  document.getElementById("silkscreenCheckbox").checked = b;
  silkscreenVisible(b);

  b = readStorage("redrawOnDrag");
  if (b === null) {
    b = config.redraw_on_drag;
  }
  document.getElementById("dragCheckbox").checked = b;
  setRedrawOnDrag(b);

  b = readStorage("darkmode");
  if (b === null) {
    b = config.dark_mode;
  }
  document.getElementById("darkmodeCheckbox").checked = b;
  setDarkMode(b);

  b = readStorage("highlightpin1");
  if (b === null) {
    b = config.highlight_pin1;
  }
  document.getElementById("highlightpin1Checkbox").checked = b;
  setHighlightPin1(b);

  boardRotation = readStorage("boardRotation");
  if (boardRotation === null) {
    boardRotation = config.board_rotation * 5;
  } else {
    boardRotation = parseInt(boardRotation);
  }
  document.getElementById("boardRotation").value = boardRotation / 5;
  document.getElementById("rotationDegree").textContent = boardRotation;
}

window.onload = function(e) {
  initUtils();
  initRender();
  initStorage();
  initDefaults();
  cleanGutters();
  populateMetadata();
  dbgdiv = document.getElementById("dbg");
  bom = document.getElementById("bombody");
  bomhead = document.getElementById("bomhead");
  filter = "";
  reflookup = "";
  initDone = true;
  // Triggers render
  changeBomLayout(bomlayout);
}

window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);

///////////////////////////////////////////////

  </script>
</head>

<body>
<div id="topmostdiv" style="width: 100%; height: 100%">
  <div id="top">
    <div style="float: right;">
      <div class="hideonprint menu" style="float: right; margin: 10px; top: 8px;">
        <button class="menubtn"></button>
        <div class="menu-content">
          <label class="menu-label menu-label-top">
            <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
            Dark mode
          </label>
          <label class="menu-label">
            <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
            Show silkscreen
          </label>
          <label class="menu-label">
            <input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
            Highlight first pin
          </label>
          <label class="menu-label">
            <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
            Continuous redraw on drag
          </label>
          <label class="menu-label">
            <span>Board rotation</span>
            <span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
            <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Bom checkboxes</div>
            <input id="bomCheckboxes" class="menu-textbox" type=text
                   oninput="setBomCheckboxes(this.value)">
          </label>
          <label class="menu-label">
            <span class="shameless-plug">
              <span>Created using</span>
              <a target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
            </span>
          </label>
        </div>
      </div>
      <div class="button-container hideonprint"
           style="float: right; margin: 10px; position: relative; top: 8px">
        <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
                title="Front only">F
        </button>
        <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
                title="Front and Back">FB
        </button>
        <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
                title="Back only">B
        </button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; margin: 10px; position: relative; top: 8px">
        <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
                title="BOM only"></button>
        <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
                title="BOM left, drawings right"></button>
        <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
                title="BOM top, drawings bot"></button>
      </div>
    </div>
    <div id="fileinfodiv" style="overflow: auto;">
      <table class="fileinfo">
        <tbody>
          <tr>
            <td id="title" class="title" style="width: 70%">
              Title
            </td>
            <td id="revision" class="title" style="width: 30%">
              Revision
            </td>
          </tr>
          <tr>
            <td id="company">
              Kicad version
            </td>
            <td id="filedate">
              Date
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div id="bot" class="split" style="height: calc(100% - 80px)">
    <div id="bomdiv" class="split split-horizontal">
      <div style="width: 100%">
        <input id="reflookup" class="searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
               oninput="updateRefLookup(this.value)">
        <input id="filter" class="searchbox filter hideonprint" type="text" placeholder="Filter"
               oninput="updateFilter(this.value)">
        <div class="button-container hideonprint" style="float: left">
          <button id="copy" title="Copy bom table to clipboard"
               onclick="copyToClipboard()"></button>
        </div>
      </div>
      <div id="dbg"></div>
      <table class="bom">
        <thead id="bomhead">
        </thead>
        <tbody id="bombody">
        </tbody>
      </table>
    </div>
    <div id="canvasdiv" class="split split-horizontal">
      <div id="frontcanvas" class="split" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
        </div>
      </div>
      <div id="backcanvas" class="split" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
        </div>
      </div>
    </div>
  </div>
</div>
</body>

</html>
